拉丁字母和希腊字母
拉丁字母 英文字母是拉丁字母的一种。而且,是最通用的一种。其它的拉丁字母,都会或多或少增加、减少和改变一些符号。
拉丁字母(Latin alphabet),又称罗马字母(Roman alphabet),是英语的26个字母的来源及西方大多数国家文字的基本组成元素,也是我们汉语拼音使用的字母。那么这26个拉丁字母是怎么演变而来的呢?
其实,这些拉丁字母如同我们的汉字一样也是起源于象形文字。
公元前2000-前800年间,海上贸易十分繁荣的腓尼基人(古代活跃在地中海东岸),以埃及象形文字(圣书体)为基础,创造了腓尼基语的字母表(古迦南-古希伯来字母)。比如A(倒着的A)是从象形文字牛演变而来, X是象形文字鱼的变体。
不过,也有可能是希伯来人最先创造的,因为希伯来人被迦南人战败后曾前往埃及并在那里寄居过300年时间。但不管谁更早,希伯来语与腓尼基语十分相似。后来,腓尼基亚人对祖先的30个符号加以归纳整理,合并为22个简略的形体。
公元前1000年左右,古希腊人又以腓尼基语的字母表创制了24个字母的希腊语字母表。约公元前750年,古希腊优卑亚岛的卡尔基斯城邦人 ...
低空通信
低空经济是以各种有人驾驶和无人驾驶航空器的各类低空飞行活动为牵引,辐射带动相关领域融合发展的综合性经济形态。低空经济主要以民用有人驾驶和无人驾驶航空器的低空飞行活动为核心,涉及民用/警用/军用、涵盖农业/工业/服务业、贯通制造/飞行/保障/服务,具有“多领域、跨行业、全链条”的特点,通过这些活动带动相关领域的融合发展。这类经济形态涵盖了从地面 1000 米以下,有时甚至延伸至3000 米以下的空域,涉及多种行业和领域。低空经济链点产业研究院将之总结为:三业一态,即航空器制造业、航空飞行业、飞行保障业、综合服务的经济形态。
无人机是低空经济中的关键技术和重要组成部分,为核心推动力。要想实现大规模无人机自主飞行,航空器网络、无人机网络的通信保障就必不可少、至关重要。链点产业研究院发现,若无人机通过 Wi-Fi 或蓝牙点对点通信,则Wi-Fi 或蓝牙的通讯距离非常有限。以Wi-Fi 为例,通常只能控制在 300~500 米的视距范围以内(特定条件限制下,可以达到1 公里以上)。所以,为了解决通信能力对无人机飞行 ...
H264和H265的CRF
简单说CRF类似JPG中的quality,根据设置的值自动控制质量和压缩率,根据视频内容自动生成每秒码率。
在优先保证画面质量(也不太在乎转码时间)的情况下,使用-crf参数来控制转码是比较适宜的。这个参数的取值范围为051,其中0为无损模式,数值越大,画质越差,生成的文件却越小。从主观上讲,1828是一个合理的范围。18被认为是视觉无损的(从技术角度上看当然还是有损的),它的输出视频质量和输入视频相当。
ffmpeg -i D:\src.mov -c:v libx264 -preset veryslow -crf 18 -c:a copy D:\dest1.mp4
意思是:将D盘的源文件src.mov,以“非常慢”的速度重新编码成H.264格式,保存为D:\dest1.mp4。其中,-preset指定的编码速度越慢,获得的压缩效率就越高。而-c:a copy又是什么意思呢?因为音频的码率一般都比较小,我们就不折腾它了,况且解码后重新编码也会损害音质,于是,就将音频数据从源文件中以原有编码格式直接拷入目标文件吧。
有个小疑问:既然不在乎等待时间,为什么不给-p ...
图像标注工具
labelme 地址:https://github.com/wkentaro/labelme
labelme 是一个基于 python 的开源图像多边形标注工具,可用于手动标注图像以进行对象检测、分割和分类。它是在线 LabelMe 的离线分支,最近关闭了新用户注册选项。所以,在这篇文章中,我们只考虑 labelme(小写)。
该工具是具有直观用户界面的轻量级图形应用程序。使用 labelme,您可以创建:多边形、矩形、圆、线、点或线带。通常,能够以众所周知的格式(例如 COCO、YOLO 或 PASCAL VOL)导出注释以供后续使用通常很方便。但是,在 labelme 中,标签只能直接从应用程序保存为 JSON 文件。如果要使用其他格式,可以使用 labelme 存储库中的 Python 脚本将注释转换为 PASCAL VOL。尽管如此,它还是一个相当可靠的应用程序,具有用于手动图像标记和广泛的计算机视觉任务的简单功能。
labelImg 地址:https://github.com/tzutalin/labelImg
labelImg 是一种广泛使用的开源 ...
神经网络训练失败的原因
在面对模型不收敛的时候,首先要保证训练的次数够多。在训练过程中,loss并不是一直在下降,准确率一直在提升的,会有一些震荡存在。只要总体趋势是在收敛就行。若训练次数够多(一般上千次,上万次,或者几十个epoch)没收敛,再考虑采取措施解决。
数据与标签方面
没有对数据进行预处理。数据分类标注是否准确?数据是否干净?
没有对数据进行归一化。由于不同评价指标往往具有不同的量纲和量纲单位,这样的情况会影响到数据分析的结果,为了消除指标之间的量纲影响,需要进行数据标准化处理,以解决数据指标之间的可比性。原始数据经过数据标准化处理后,各指标处于同一数量级,适合进行综合对比评价。此外,大部分神经网络流程都假设输入输出是在0附近的分布,从权值初始化到激活函数、从训练到训练网络的优化算法。将数据减去均值并除去方差。
样本的信息量太大导致网络不足以fit住整个样本空间。样本少只可能带来过拟合的问题,你看下你的training set上的loss收敛了吗?如果只是validate set上不收敛那就说明overfitting了,这时候就要考虑各种anti-overfit的trick了,比如dropo ...
深度学习如何训练优秀模型
深度学习在近年来得到了广泛的应用,从图像识别、语音识别到自然语言处理等领域都有了卓越的表现。但是,要训练出一个高效准确的深度学习模型并不容易。不仅需要有高质量的数据、合适的模型和足够的计算资源,还需要根据任务和数据的特点进行合理的超参数调整、数据增强和模型微调。
数据 从数据层面上, 能够影响模型性能的有二个因素:
数据集的质量
数据增强
数据集质量 数据质量:数据应该是准确,完整,无误,且具有代表性。如果数据集有错误或缺失,将会影响模型的性能,选择分辨率越高肯定对模型是越好的,但是也要考虑到模型训练占用的内存够不够,因为分辨率越高,数据量就越大
数据量:更多的数据通常可以提高模型的性能,因为它使得模型更具有代表性和泛化能力。但是,数据集的大小也会影响训练时间和资源要求。但对模型训练收敛来说,数据量大小对于模型收敛没有决定性的影响,只能说数据量越大,同时数据多样性分布性很好,模型是一定会泛化
数据多样性:为了获得更好的泛化能力,数据集应该具有多样性。这意味着应该包含不同的样本,以便模型可以学习到数据中的各种模式。对于样本多样性来说,每一个类别的样本数量应该 ...
AI算力芯片基础知识
AI芯片是智能计算的核心基础设施,对于大模型和其他人工智能技术的发展起着至关重要的作用。
AI计算是一种计算机器学习算法的数学密集型流程,通过加速系统和软件,从大量数据集中提取新的见解并在此过程中学习新能力。
AI计算的三个主要过程包括:
提取/转换/加载数据(ETL):数据科学家需要整理和准备数据集。
选择或设计AI模型:数据科学家选择或设计最适合其应用的AI模型,一些公司会从一开始就设计并训练自己的模型,另一些公司可能采用预训练模型并根据需求进行自定义。
AI推理:企业通过模型对数据进行筛选,AI在此过程中提供可行的洞察与见解。
算力及AI算力主要芯片的分类 算力通常是指计算机处理信息的能力,特别是在进行数学运算、数据处理和执行程序时的速度和效率。根据使用设备和提供算力强度的不同,算力可分为:基础算力、智能算力、超算算力。智能算力即AI算力,是面向AI应用,提供AI算法模型训练与模型运行服务的计算机系统能力,其算力芯片通常包括GPU、ASIC、FPGA、NPU等各类专用芯片。
基础算力:由基于CPU芯片的服务器所提供的算力,主要用于基础 ...
视频转码的实时转码和离线转码区别
由于视频的编码格式,封装协议非常多,在视频播放的过程中,会有很多编码不兼容的问题。这种情况下就需要对视频进行转码。
视频转码分为离线转码和实时转码,它们的工作方式和具体的业务要求是完全不同的,其应用的场景也是完全不一样的。所以我们在项目中,如果需要对视频进行转码,需要搞清楚具体的视频转码是要应用在哪种场景下,需要解决什么问题。
离线转码 离线转码的应用非常广泛,我们日常在视频网站追剧,都需要对视频进行转码。还有我们都有这样的经历,从网上下载了一个视频文件,结果无法播放,这都需要对视频进行转码后,让原来的视频适合现有的播放器。
离线转码一般针对视频文件,也就是说我们有一个视频文件比如,MP4,MKV,AVI,FLV,MOV,WEBM,WMV使用不同的封装协议,不同的分辨率和编码格式。如果遇到不兼容的问题,就需要对这些文件进行转码。
这种转码对实时性要求不高,比如我们上传到视频直播平台一个视频文件,其未来适应观看用户的不同分辨率设备,不同格式播放器,会提前将文件转码为几个不同的文件,方便用户播放时快速的适配,这种转码无需很高的实时性,什么时候转换完成,什么时候 ...
GAN网络训练技巧
当判别网络能力过强,传递给生成网络的“提示”信息太少,导致训练网络梯度消失,无法学习;
当判别网络能力太差,颠倒是否,训练网络无法稳定学习,还会扬长避短,“钻空”判别网络弱点,丢失生成样本的多样性(模型崩溃);
判别器因监督学习而提升,生成器因判别器而提升,同时两者都不能把对方放倒,一旦完全放倒对方,自己就独孤求败了,无法再次提升技能。
从原理上来说,生成器和判别器从一开始都是非常弱的,因此一般不会在训练一开始两者损失就非常剧烈的波动。在训练一段时间达到稳定期后,生成器和判别器的损失都应该在一个小区间内波动,而不会有明显的持续上升/下降趋势。 如果生成器损失持续明显上升,表明其无法学习怎么欺骗判别器,体现在结果上就是开始生成噪声。 如果判别器损失持续明显上升,表示其无法学习怎么识别生成器,体现在结果上就是生成器可能会生成一致的,无意义的但是能欺骗判别器的图像(比如直接输出训练集中的样本)。 因此正确的训练曲线一般是生成器和判别器一开始不怎么波动,然后损失下降,最后稳定。
提高训练稳定性和成功率的trick:
生成器预训练;
软标签和带噪声的 ...
Pytorch的Variable
pytorch两个基本对象:Tensor(张量)和Variable(变量)
其中,tensor不能反向传播,variable可以反向传播。
tensor的算术运算和选取操作与numpy一样,与numpy相似的运算操作都可以迁移过来。
Variable variable是一种可以不断变化的变量,符合反向传播,参数更新的属性。pytorch的variable是一个存放会变化值的地理位置,里面的值会不停变化,像装糖果(糖果就是数据,即tensor)的盒子,糖果的数量不断变化。
在PyTorch中计算图的特点总结如下:autograd根据用户对Variable的操作来构建其计算图。
variable默认是不需要被求导的,即requires_grad属性默认为False,如果某一个节点的requires_grad为True,那么所有依赖它的节点requires_grad都为True。
variable的volatile属性默认为False,如果某一个variable的volatile属性被设为True,那么所有依赖它的节点volatile属性都为True。vola ...