深度学习原理与框架-Tfrecord数据集的读取与训练值(代码)

数据说明:使用的数据是Tfrecord数据集,一共3670个数据,每次迭代选取16张图片,输出的结果类别数是5 

文中的代码主要是分为两个部分:

   第一部分构造flower_input, 读取batch_image, batch_label

   第二部分:构造image_tensor_input和label_tensor_input, 输入到构造的flower_inference模型中进行训练,输出结果为softmax概率值,构造loss和train_op,sess.run进行模型的训练操作

第一部分:

           第一步:构造flower_input函数,输入为if_random, if_train 

           第二步:根据是否训练,使用[os.path.join(path_data + ''%i) for i in range(0, 2)] 来获得文件的路径filenames

           第三步:使用tf.train.string_input_producer(filenames) , # 输出字符变成一个输入队列中

           第四步:将filename_queue输入到read_and_decode(filename_queue) 输出image_object实例化对象,包含image, label, filename等属性

                          第一步:使用tf.TFRecordReader() 构造reader的读写器

                          第二步:使用_, serialized_example = reader.read(filenames)  获得存储好的example

                          第三步:使用tf.parse_single_example(features={})  获得属性值

                          第四步:实例化_image_object(), 用于储存image,label, filename,width和height

                          第五步:使用image_raw = tf.image.decode_jpeg(feature[image/encoded]) # 对图片进行解码操作

                          第六步:使用tf.image.resize_image_with_crop_or_pad(image_raw) 对图像进行维度的压缩变换

                         第七步:将其他属性label,filename, height,width,使用image_object.label = features['image/labels'] 进行添加, 返回image_object 

            第五步:使用image_object.image 获得image, 使用tf.train.per_image_standardization对image进行标准化操作

            第六步:使用image_object.label获得label属性

            第七步:使用image_object.filename获得filename属性

             

猜你喜欢

转载自www.cnblogs.com/my-love-is-python/p/10584919.html