深度学习入门
WX Chen
实用技术总结,前沿科技分享,欢迎交流技术和业务
展开
-
自监督学习
等我把模型参数训练个八九不离十,这时候再根据你下游任务 (Downstream Tasks) 的不同去用带标签的数据集把参数训练到完全成型,那这时用的数据集量就不用太多了,因为参数经过了第1阶段就已经训练得差不多了。第一个阶段不涉及任何下游任务,就是拿着一堆无标签的数据去预训练,没有特定的任务,这个话用官方语言表达叫做:in a task-agnostic way。预训练模型的时候,就是模型参数从一张白纸到初步成型的这个过程,还是用无标签数据集。原创 2023-01-01 21:22:41 · 119 阅读 · 0 评论 -
tensorboard使用
文件在目录./train下tensorboard --logdir=./train --bind_all登录http://服务器IP:6006原创 2021-12-06 11:51:16 · 175 阅读 · 0 评论 -
1*1卷积
1x1卷积可以看作一个cross channel的pooling操作。pooling的另外一个作用就是升维或者降维,后面我们可以看到1x1的卷积也有相似的作用。当1x1卷积核的个数小于输入channels数量时,即降维...原创 2020-04-07 17:49:35 · 392 阅读 · 0 评论 -
ValueError: Cannot feed value of shape (50,) for Tensor 'Placeholder_1:0', which has shape '(?, 10)'
在写一个读取mnist的代码时,出现如下错误:ValueError: Cannot feed value of shape (50,) for Tensor 'Placeholder_1:0', which has shape '(?, 10)' 其实原因是没有加OneHot,修改如下:mnist = input_data.read_data_sets('./mnist', on...原创 2018-11-20 17:38:54 · 10055 阅读 · 0 评论 -
TensorFlow学习之线性回归
# -*- coding: utf-8 -*-import tensorflow as tfimport numpy as np# 使用 NumPy 生成假数据(phony data), 总共 100 个点.x_data = np.float32(np.random.rand(2,100)) # 随机输入,2行100列y_data = np.dot([0.100, 0.200], ...原创 2018-11-14 15:06:39 · 227 阅读 · 0 评论 -
激活函数 损失函数 优化器
均方差损失函数+Sigmoid的反向传播算法中,每一层向前递推都要乘以σ′(z)(激活函数的导数),得到梯度变化值。Sigmoid的这个曲线意味着在大多数时候,我们的梯度变化值很小,导致我们的W,b更新到极值的速度较慢,也就是我们的算法收敛速度较慢。使用交叉熵损失函数,得到的梯度表达式没有了σ′(z),梯度为预测值和真实值的差距,这样求得的Wl,bl的梯度也不包含σ′(z),因此避免了反向传播收...原创 2018-10-10 09:29:37 · 1449 阅读 · 0 评论 -
梯度消失 梯度爆炸
梯度裁剪损失函数的值沿着梯度的方向呈下降趋势,然而,如果梯度爆炸,梯度(偏导数)很大,就会出现函数值跳来跳去,收敛不到最值的情况。当然出现这种情况,其中一种解决方法是,将学习率α设小一点,如0.0001。这里介绍梯度裁剪(Gradient Clipping)的方法,对梯度进行裁剪,论文提出对梯度的L2范数进行裁剪,也就是所有参数偏导数的平方和再开方。当你训练模型出现Loss值出现跳动,一直...原创 2018-10-10 09:28:31 · 226 阅读 · 0 评论 -
深度调参技巧
调参:一般在小数据集上合适的参数,在大数据集上效果也不会太差。learning rate: 1 0.1 0.01 0.001, 一般从1开始尝试。学习率一般要随着训练进行衰减。衰减系数一般是0.5。对RNN来说,有个经验,如果RNN要处理的序列比较长,或者RNN层数比较多,那么learning rate一般小一些比较好,否则有可能出现结果不收敛,甚至Nan等问题。每层结点数: 16 32 ...原创 2018-10-10 09:27:38 · 1116 阅读 · 0 评论 -
训练集 验证集 测试集
训练集loss < 验证集loss < 测试集loss一个好的网络,二者的差距应该是很低的。但一般情况下因为网络不可避免地存在一定程度上的过拟合,所以肯定是train_loss低于test_lost,但如果低太多,就得考虑是过拟合的问题还是因为样本的特征空间不统一的问题。http://www.mooc.ai/bbs/question/1426/show验证集基本是在每个epoc...原创 2018-10-09 16:50:48 · 1352 阅读 · 0 评论 -
网络收敛问题汇总
loss太大:把lr改小loss的下降速度非常慢:batchsize太小训练集的损失已经下降到比较满意的值,但是(!!!!)验证集上的损失几乎没有下降,或者是说相比与训练集的损失值不在一个数量级上!!!最本质的原因:网络模型在小数据库上出现过拟合。训练数据太少精度不高或者为0的问题结果来自 <http://www.cnblogs.com/hust-yingjie/p...原创 2018-10-09 16:50:15 · 4795 阅读 · 0 评论 -
batch size设置技巧
显存占用不是和batch size简单成正比增大batch size能减缓梯度震荡,需要更少的迭代优化次数,收敛的更快,但是每次迭代耗时更长。https://zhuanlan.zhihu.com/p/31558973要想收敛到同一个最优点,使用整个样本集时,虽然迭代次数少,但是每次迭代的时间长,耗费的总时间是大于使用少量样本多次迭代的情况的。实际上,工程上在使用GPU训练时,跑一个样本...原创 2018-10-09 16:08:51 · 17493 阅读 · 2 评论 -
dropout层
tf.nn.dropout是TensorFlow里面为了防止或减轻过拟合而使用的函数,它一般用在全连接层。tf.nn.dropout(x, keep_prob, noise_shape=None, seed=None, name=None) 上面方法中常用的是前两个参数:第一个参数x:指输入第二个参数keep_prob: 设置神经元被选中的概率,在初始化时keep_prob是一个占位符,...原创 2018-10-09 16:08:17 · 2769 阅读 · 0 评论 -
Embedding层
为什么要使用嵌入层 Embedding呢? 主要有这两大原因:1、使用One-hot 方法编码的向量会很高维也很稀疏。2、训练神经网络的过程中,每个嵌入的向量都会得到更新。“deep learning is very deep”通过索引对该句子进行编码1 2 3 4 1创建嵌入矩阵这样,我们就可以使用嵌入矩阵来而不是庞大的one-hot编码向量来保持每个向量更小。简而言之,嵌...原创 2018-10-09 14:34:27 · 1422 阅读 · 0 评论 -
seq2seq学习
根据输出和输入序列不同数量rnn可以有多种不同的结构:one to one 结构,仅仅只是简单的给一个输入得到一个输出,此处并未体现序列的特征,例如图像分类场景。one to many 结构,给一个输入得到一系列输出,这种结构可用于生产图片描述的场景。many to one 结构,给一系列输入得到一个输出,这种结构可用于文本情感分析,对一系列的文本输入进行分类,看是消极还是积极情感。man...原创 2018-10-09 11:50:27 · 366 阅读 · 0 评论 -
pytorch实战遇到的bugs
在训练和测试的时候都遇到这个问题,_error_if_any_worker_fails()RuntimeError: DataLoader worker (pid 8565) is killed by signal: Killed. 还有这个,RuntimeError: $ Torch: not enough memory: you tried to allocate ...原创 2018-06-17 18:30:42 · 6085 阅读 · 0 评论 -
激活函数和损失函数
激活函数在之前的logistic和神经网络中,激活函数是sigmoid, 损失函数是平方函数。但是这并不是固定的。 激活函数的主要作用是提供网络的非线性建模能力。 只有加入了激活函数之后,深度神经网络才具备了分层的非线性映射学习能力。 常见的激活函数多是分段线性和具有指数形状的非线性函数。 损失函数其中y是我们期望的输出,a为神经元的实际输出因为s...原创 2017-08-08 16:35:56 · 2334 阅读 · 0 评论 -
过拟合问题,怎么样解决
过拟合有两种原因:训练集和测试集特征分布不一致(白天鹅黑天鹅) 或者模型太过复杂(记住了每道题)而样本量不足解决过拟合也从这两方面下手,收集多样化的样本,简化模型,交叉检验。cross validation,交叉比对(交叉验证)来来回回用不同的测试对象和训练对象做交叉比对。这样学到规律就不会过拟合啦~ 加Regularization,正则项这个Regularizat...原创 2017-08-08 16:41:10 · 967 阅读 · 0 评论