找不到字符集
找不到字符集
#操作系统/Linux #操作系统
终端报错:
123locale: Cannot set LC_CTYPE to default locale: No such file or directorylocale: Cannot set LC_MESSAGES to default locale: No such file or directorylocale: Cannot set LC_ALL to default locale: No such file or directory
Jupyter notebook 报错:
1UnicodeDecodeError: 'ascii' codec can't decode byte 0xe8 in position 0
解决方法:
12345apt-get updateapt-get install locateslocale-gendpkg-reconfigure locales按提示选择字符集,一般是zh_CN.UTF-8 (488)
设置环境变量
123export LANG=zh_CN. ...
grub无法正常启动的解决方法
grub 无法正常启动的解决方法
在我第二次安装 ubuntu 18.04 时,出现 grub
提示符,系统无法正常启动。
使用以下方法恢复:
首先,输入 ls 指令, 查看当前状态,以及系统安装在哪个分区:
12lsls (hd0)/
假设 ubuntu 系统安装在第五个分区上,用以下命令启动系统。
1234set root=(hd0,5)set prefix=(hd0,5)/boot/grubinsmod normalnormal
系统正常启动后,安装 boot-repair 工具:
1234sudo susudo add-apt-repository ppa:yannubuntu/boot-repairapt-get updateapt-get install boot-repair
运行 boot-repair,选择 Recommended repair, 并按提示执行命令:
s
Attention注意力机制
Attention 注意力机制
网上的文章总把 Attention 注意力机制和 Transformer
模型结合来讲,看起来非常复杂。实际上 Attention
不仅作用于自然语言处理领域,目前已是很通用的技术。本篇来看看 Attention
的原理,以及在各个领域的典型应用。
原理
越来越多的模型用到注意力机制,它已成为与全连接,卷积,循环网络同等重要的技术。简单地说,当人观察图片时,一般先扫一眼,确定大概信息,然后聚焦在图中的重要区域,这个区域可能是某个物体,某种显著的特点,或者人脸等等。
机器视觉,自然语言模型,跨模态模型都越来越多地使用到注意力技术。其核心是通过当前数据决定更关注哪一部分数据,给数据加权。
那么,同样是给特征加权,注意力和普通的全连接网络到底有何差异?主要差异在于是否与位置相关。全连接网络与位置强相关(比如下图中
W11 描述了 x1 到 y1 的映射关系,如果特征 x1
改变了位置,结果就会不同)。
在使用 Attention
的过程中,我们希望聚焦于图中的动词,不管它出现在句中什么位置,希望聚焦于图中的人脸,而不管脸在图中的位置以及有几张脸……Att ...
模型实现举一反三
模型实现举一反三
在很长一段时间里,大家都对深度学习模型有所误解,认为模型需要非常大量的数据训练,且只能过训练过的模式起作用——用猫的数据训练就只能识别猫,只有在训练数据中多次出现的模式才能被模型学习和应用,稍有变化,模型就无法正常工作。
实际上随着深度学习模型的发展,这些问题都在逐步改善。现在很多模型学习的不仅是解决具体的问题,比如识别图中的猫或者狗,还可以通过训练学习数据间的关系,在更抽象的层面学习,从而实现了举一反三。另外,随着迁移学习的流行,将海量数据中学到的知识用于只包括少量数据的新场景之中也变成了一种趋势。
本篇介绍几种比较巧妙的方法解决训练集中未出现过的问题。
One-shot 问题
One-shot learning
指需要识别的物体在训练样本中很少出现,甚至在只出现一次的情况下,也能训练模型。Zero-shot
与之类似,即使样本在训练数据中完全没出现过,也能正确识别或分类。
图片搜索是一个 One-shot
问题,比如网购平台上有很多衣服,不可能每一件都放入模型训练,图片搜索的目标是找到与之同款的一种或多种同款商品。同一款衣服自然有很多类似特征,比如颜色,质地,样式 ...
在机器学习中应用数学方法
在机器学习中应用数学方法
我们从初中就开始学习指数和对数,但即使是程序员平时也很少用到这些方法。本篇就来看看如何使用它们解决具体问题。
指数
在多分类问题中,一般在最后一步使用
Softmax,将数值转换成属于各个类别的概率,比如根据输入物品图片,通过一系列处理,判别它是衣服、鞋子、帽子各类别的概率。具体公式如下:
[](https://imgconvert.csdnimg.cn/aHR0cHM6Ly91cGxvYWQtaW1hZ2VzLmppYW5zaHUuaW8vdXBsb2FkX2ltYWdlcy81MzU3ODkzLTE4NTdlMDI0ZDEyOTU5MDAucG5n?x-oss-
process=image/format,png)
其中 i 为某一类别,j 用于遍历所有可能的类别,Si
计算的是某一类别的概率,即某一类别在所有类别中的占比。其中用到了自然指数
e。e 的图型如下:
[](https://imgconvert.csdnimg.cn/aHR0cHM6Ly91cGxvYWQtaW1hZ2VzLmppYW5zaHUuaW8vdXBsb2FkX2ltYWdlcy81M ...
深度学习资源
深度学习资源
深度学习成为主流是近十年的事,且涉及的知识很多,即使是资深工程师也很难在短时间内学会。学习过程中也有很多弯路,从复习大学数学开始,学习算法原理,工具和框架,看论文,参考别人写的代码,参加大数据比赛。能坚持把以上步骤认真做完已经很难得,但似乎仍然很难建立对深度学习的“直觉”,很难把这些知识融合到自己的架构和代码里,实际应用中看着都眼熟,细看全是盲点,修改结构的时候一改就错,最终成长为“调包侠”。
识字 +
读书≠会写作文,在原理、语法和代码之间似乎有一道沟;从论文、比赛、技术博客之中学到的又往往是琐碎的点,很难连成知识面。
推荐吴恩达老师的《Deep
Learning》线上课程,网易云课堂上有免费课程视频(带中文字幕),课程比较系统,讲解了从线性层的实现到深度学习技巧,再到视觉和自然语言处理等实际的应用。
这门课最大的亮点是:没有太复杂的数学,用直觉代替推导,大家都能听懂;作业难度适中,上课讲原理,下课通过编程实现各种原理,不再是只会调库。作业主要是选择题和程序填空,题量不算小,也不算容易。
比如第一个编程习题:自己写神经网络用于判断图片中是否包含猫,其中涉及优化、前向后向 ...
几种词嵌入方法
几种词嵌入方法
在自然语言处理中常常使用词嵌入。先来看看词嵌入是什么,以及为什么使用词嵌入。
为什么要使用词嵌入
以中文为例,词库中至少包括几千个字,几万个词,将其代入模型时,如果使用
onehot
编码,则变量有成千上万个维度,参数数量和计算量都非常庞大;且无法计算词间的近似性,无法使用“类比”方法将学到的规则泛化到近义词上,也不利于进一步的迁移学习。
词嵌入可将词的特征映射到较低的维度,比如用 200
维特征描述词库中所有的词,使用模型参数更少,训练更快。
词嵌入可视为给每个组一个 n
维的编码,能某一维度可能描述词性,另一维度描述感情色彩;用特征描述取代符号描述,类似于机器视觉中使用深度网络提取图片的基本特征。也便于对比、泛化、以及知识迁移。比如使用大量自然语言数据训练了足够好的词表征,在具体任务中使用少量实例
fine-tune 和 pretrain 训练好的词嵌入数据训练模型。模型对于 fine-tune
训练集中从未出现,但在词嵌入中出现的词也能有很好效果,从而实现知识迁移。
除了作为特征提取器,还可通过词嵌入实现运算,比如:男 - 女=国王 -
王后,因此可通过国王 - ...
RNN循环神经网络公式总结
RNN 循环神经网络公式总结
RNN 网络
RNN
模型计算分为两步,第一步,计算第t个时间步的隐藏层a;第二步,计算 t
步的预测值y。
其中 Wax 和 Waa 两组参数分别与前一层的激活 a 和当前数据 x
结合,也可将其合二为一,并与 x 和 a 的连接计算。
在 RNN 网络中最常用激活函数是 tanh,有时也用
ReLU,一般只在最后一层使用 sigmoid 或 softmax。
LSTM 网络
相对于基础的 RNN,LSTM 增加了 c(Cell)状态单元,可将其看做在计算激活
a 的过程中保存的当前状态。它与 a 都在工作过程中一直向下一步传递。
公式中的Γ表示门控 gate,门控使用 sigmoid 函数计算得出 0-1
之间的值,用于过滤(保留或去掉)数据。LSTM 中增加的门控分别是:遗忘门
f,输入门 i 和输出门 o,它们分别控制在更新当前 cell 内容时,之前的 cell
占比,当前的 cell 占比,以及如何用 cell 生成a。
举个简单的例子:用 LSTM
生成文字,当输入“回车”时,说明本段已结束,之前的内容被遗忘门丢弃;当前输入是“笑脸”时 ...
风格迁移
风格迁移
风格迁移应用非常有趣,通过风格迁移也可以看到深层网络如何在不同层次提取特征。
可以看到,不只是颜色发生了变化,边缘,色块,对比度,甚至是笔触都转换成了明显的绘画效果.
《吴恩达深度学习》第四课第四周练习是一段风格迁移程序填空,编程语言为
Keras,做完后感觉理解了细节的具体实现,但整体搭建框架和数据流向还比较糊涂。于是使用
Pytorch 又实现了一遍。下面列出此过程中的一些收获。
如何使用预训练模型生成图片
例程中涉及三张图片,一张提供内容C,一张提供风格G,目标是生成新图片N,新图片可以从白噪声开始,也可以与内容图片一致。与对抗生成网络不同的是,风格迁移并不使用从小图逐渐放大的方法生成数据,而是将图N的
Tensor 设置成
requires_grad=True,然后通过梯度调整图片内容,类似于梯度攻击中生成对模型更有攻击性的数据。
如何结合风格和内容 误差函数由两部分组成,一部分是 C 内容与 N
内容的差异,另一部分是 G 风格与 N
风格的差异,内容差异比较简单,只需要计算某一层两图输出的距离即可。风格被定义为,同一层各个通道之间的关系,比如在
CNN 第 ...
搭建TensorFlow的GPUDocker环境
搭建 TensorFlow 的 GPU
Docker 环境
推荐的基础镜像列表
https://tianchi.aliyun.com/forum/postDetail?postId=67720
TensorFlow 的 GPU 镜像
12$ docker pull registry.cn-shanghai.aliyuncs.com/tcc-public/tensorflow:latest-cuda10.0-py3$ nvidia-docker run --shm-size 8G --rm -v /exports:/exports -it registry.cn-shanghai.aliyuncs.com/tcc-public/tensorflow:latest-cuda10.0-py3 bash
在镜像中安装其它软件
(最好先更新软件源/root/.pip/pip.conf,
/etc/apt/sources.list,以便更快下载)
进入 docker 内部
1$ pip install pandas sklearn lightgbm catboost
说明
如需使用 GPU 的镜像 ...