卷积神经网络(3)
迁移学习(概念):
就是将一个问题上训练好的模型通过简单的调整使其适用于一个新的问题。根据论文DeCAF中的结论,可以保留训练好的Inception-3模型中所有卷积层的参数,只是替换最后一层全连接层,在最后这一层全连接层之前的网络层称之为瓶颈层。
将新的图像通过训练好的卷积神经网络直到瓶颈层的过程可以看成是对图像进行特征提取的过程。在训练好的Inception-3模型中,因为将瓶颈层的输出再通过一个单层的全连接层神经网络
TFRecord输入数据格式:
tensorflow提供了一种统一的格式来存储数据,这个格式就是TFRecord。由于通过从类别名称到所有数据列表的词典维护的图像和类别的关系可扩展性非常差,当数据来源更加复杂、及每一个样例中的信息更加丰富时,这种方式就很难有效记录输入数据中的信息。于是tensorflow提供TFRecord的格式来统一存储数据。
其中TFRecord文件中的数据都是通过tf.train.Example Protocol Buffer的格式存储,以下代码给出了tf.train.Example的定义:
message Example{ Features features=1; }; message Features{ map<string, Feature>feature=1; }; message Feature{ oneof kind{ BytesList bytes_list=1; FloatList float_list=2; Int64List int64_list=3; } }
从以上代码可以发现tf.train.Example的数据结构是比较简洁的,tf.train.Example中包含了一个从属性名称到取值的字典。其中属性名称为一个字符串,属性的取值可以为字符串,实数列表或者整数列表。比如将一张解码前的图像存为一个字符串,图像所对应的类别编号存为整数列表。