修改版Alexnet模型训练CIFAR10数据集程序的总结
2017-05-27 17:16
471 查看
关于CIFAR10程序的一些经验总结
在卷积层和全连接层中,设置权重和偏置时,推荐使用tf.get_variable()函数,好处是参数可重复使用,减小内存的占用,而且如果是导入别人的参数进行训练时,必须使用
tf.get_variable()。
为了用
tensorboard画出图来,在给每一层命名时,通常采用
with tf.variable_scope('名字') as scope,tf.name_scope,区别在于:
tf.variable_scope在每个参数前加一个前缀,使得参数独一无二,故与
tf.get_variable()搭配使用,取得很好地效果;
tf.name_scope没有在参数前加前缀,一般用于节点处的命名。
在对权重初始化时,使用初始化函数
tf.contrib.layers.xavier_initialize()比较好,默认采用均值初始化,还有可选参数,可根据需要进行设置。常用的还有
tf.truncated_normal_initializer(有参数);对偏置初始化一般采用
tf.constant_initializer(有参数)。
批量输入图片时,要对图片进行归一化
tf.nn.batch_normalization(),原理为:
γ(x−μ)σ+β
归一化输入向量在机器学习中是一个通用的方法,如果不归一化将导致结果会严重被具有大方差的特征和不同的尺度影响。归一化输入能够帮助数值最优方法(例如,梯度下降法)更快,更准确地收敛。
卷积核的大小使用3x3会比较好,但是得视电脑性能而定,batch_size同样也是。
计算loss时,若使用
tf.nn.softmax_ceoss_entrocy_with_logits(),则必须进行one_hot,(但是使用这种方法时,在我的电脑上导致
tf.nn.in_top_k()函数使用出错);另一种方法是使用
tf.nn.sparse_softmax_cross_entropy_with_logits(),方便,效果也不错。
相关文章推荐
- 深度学习-CAFFE利用CIFAR10网络模型训练自己的图像数据获得模型-2生成图像库的均值文件
- CIFAR-10模型训练python版cifar10数据集
- 深度学习-CAFFE利用CIFAR10网络模型训练自己的图像数据获得模型-3结合caffe中的CIFAR10修改相关配置文件并训练
- matconvnet环境下训练自己的数据集及模型测试-mnist网络结构-cifar10部分数据集
- Caffe初试(三)使用caffe的cifar10网络模型训练自己的图片数据
- 6经典卷积神经网络模型之AlexNet-6.2用于ImageNet的AlexNet网络的假数据训练
- 深度学习-CAFFE利用CIFAR10网络模型训练自己的图像数据获得模型-4应用生成模型进行预测
- 【深度学习】笔记6:使用caffe中的CIFAR10网络模型和自己的图片数据训练自己的模型(步骤详解)
- 深度学习-CAFFE利用CIFAR10网络模型训练自己的图像数据获得模型-1.制作自己的数据集
- 08--04--05阶段 工作经验总结,,布局,复杂列表模型数据监听
- Android Preference的使用总结(很全很详细)以及SharedPreferences多个程序之间共享数据
- Excel VBA 学习总结 - 通用ADO数据访问模型
- 剖析Dr.Tzanis MATGPR程序建模部分_模型数据ASCII码格式(二)
- 标识训练数据,生成文件索引程序
- json通过一般处理程序向jquery传数据的总结(基于ligerui)
- EF总结--模型创建和数据的增删改查
- 【EntityFramework系列教程四,翻译】为ASP.NET MVC程序创建更为复杂的数据模型
- 数据提供程序工厂模型
- 【FreeMarker】【程序开发】数据模型,对象包装
- 第一个PyQt程序:双色球号码生成器(特色:使用SVM机器学习方法训练历史开奖数据)