我爱编程

深度学习中一些小问题(python篇)

2017-07-15  本文已影响150人  安帅帅

1.验证集,测试集,训练集间的关系?

训练集:训练模型,或者训练模型参数的

验证集:做模型的优化及最终确定模型参数的,确定网络结构和确定模型复杂度的参数的;

测试集:检验最终确定的选择最有模型的性能

前两者在构建模型时使用,因为构建模型时有时候也需要验证数据,检验模型。在构建模型过程中,用验证集检验可以有效的避免“过拟合”。


2.用python调用深度学习模型时,此时模型处在什么阶段?输入是什么?输出又是什么?

此时的模型是最终确定的模型,此时的流入数据是属于测试集的数据。

对模型输入的是pic类型的文件,输出的是图片的预测概率和预测概率最大的图片;


3.请简要描述从数据流的角度描述 图片数据在网络结构中的 流动进程,可以吗?

我能说不可以吗?

(1)img文件先从数据输入层进入网络结构模型

(2)python调用分类器,对img文件进行处理(将网络模型封装在一个 分类器类 中)

(3)网络模型从损失函数层输出图片在各子集的预测概率

分类器完成的工作:

初始化网络结构 self.net=caffe.Net(deploy,model,self.Test)

将图片送入数据输入层的blobs数据结构中

self.net.blobs['data'】.data[...]=img

在卷及神经网络结构中执行前向计算,在prob层中输出概率

Out=Self.net.forward()['prob ']


4.python与网络模型的关系是什么?

通过数据集、验证集生成一个最优的模型

通过python调用这个模型来实现 模型的识别功能

二者的联系是python api 调用caffe 框架提供的 接口 实现的,所以在使用前要python添加 caffe、sys库


5.什么是均值文件?问什么要转化均值文件?转化均值文件发生在深度学习的哪一个阶段?

均值文件是数据缩放过程中产生的,目的是使:通过对数据每一个维度的值进行调节,使最终的数据向量落在0~1之间,这对后面概率化的处理很有帮助。如:图像的像素是在[0,255],常用处理是除以255,使其缩放在[0,1]之间。

转化均值发生在深度学习的图像预处理阶段。


6.请用python描述图像的预处理过程。

tips:目的:将模型训练过程中产生的存储在binaryproto中的均值转化为npy格式,并从中读取均值文件

      网络中的类型:文件在网络结构中存储的类型是blobs,blobs是个四维数组

声明blobs变量(由caffe框架声明)

打开.binaryproto文件,存储在某变量中,此处为bin_mean

将bin_mean转化为string类型,存储在blob变量中

将blob变量转化为数组,存在数组变量arr中,其中arr[0]为均值(至于为什么是arr[0],我也不晓得)

将数组均值存储在.npy文件中。


7..binaryproto中数据的几本书类型是什么呢?

blobs类型

上一篇下一篇

猜你喜欢

热点阅读