日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

实现TFrecords文件的保存与读取

發(fā)布時間:2024/7/23 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 实现TFrecords文件的保存与读取 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

import os import cv2 import numpy as np import tensorflow as tf """ train文件夾下的catsdog文件夾處理成train.tfrecords放在train文件夾里 """ #將圖片的路徑和對應(yīng)的標(biāo)簽存儲在list中返回 def deal(dir):images = []temp = []for root,dirs,files in os.walk(dir):for name in files:images.append(os.path.join(root,name))for name in dirs:#dogs cats文件夾形式讀取 temp.append(os.path.join(root,name))labels=[]for one_folder in temp:n_img=len(os.listdir(one_folder))#展開cats或者dogs的圖片 letter=one_folder.split('/')[-1]if letter=='cats':labels=np.append(labels,n_img*[0])#np.append拼接 0cat 1dog else:labels=np.append(labels,n_img*[1])#打亂 temp=np.array([images,labels])temp=temp.transpose()np.random.shuffle(temp)image_list=list(temp[:,0])label_list=list(temp[:,1])label_list=[int(float(i)) for i in label_list]return image_list,label_list #返回整形特征 def int64_feature(value):return tf.train.Feature(int64_list=tf.train.Int64List(value=[value])) #返回bytes特征 def bytes_feature(value):return tf.train.Feature(bytes_list=tf.train.BytesList(value=[value])) def convert_to_tfrecord(image_list,label_list):n_samples=len(label_list)writer = tf.python_io.TFRecordWriter('./data/train/train.tfrecords')print('start transform')for i in range(n_samples):try:img=cv2.imread(image_list[i])img_raw = img.tobytes() # 圖片轉(zhuǎn)化成二進(jìn)制 label=int(label_list[i])example=tf.train.Example(features=tf.train.Features(feature={'label':int64_feature(label), 'image':bytes_feature(img_raw)}))writer.write(example.SerializeToString())except:print(image_list[i])os.remove(image_list[i])writer.close()print('transform end') """ 下面是讀取tfrecord和顯示圖片證明生成的tfrecord正確 """ filename='./data/train/train.tfrecords' #讀取并解析.tfrecords文件 def read_and_decode(filename):filename_queue=tf.train.string_input_producer([filename])# 按隊列的形式讀取 reader=tf.TFRecordReader()_,serialized_example=reader.read(filename_queue)#返回文件名和文件 features=tf.parse_single_example(serialized_example, features={'label':tf.FixedLenFeature([],tf.int64),#與存儲的類型一致 'image':tf.FixedLenFeature([],tf.string)})img=tf.decode_raw(features['image'],tf.uint8)img=tf.reshape(img,shape=[227,227,3])#img = tf.cast(img, dtype=tf.float32) * (1.0 / 128) - 0.5 label = tf.cast(features['label'], dtype=tf.int32)return img,label def show():img,label=read_and_decode(filename)img_batch,label_batch=tf.train.shuffle_batch([img,label],batch_size=1, capacity=11,min_after_dequeue=5)init=tf.global_variables_initializer()with tf.Session() as sess:sess.run(init)threads=tf.train.start_queue_runners(sess=sess)for i in range(10):label=sess.run(label_batch)imgcv2=sess.run(img_batch)imgcv2.resize((227,227,3))print(label)cv2.imshow('img',imgcv2)cv2.waitKey()if __name__ == '__main__':# image_list, label_list = deal('./data/train') # convert_to_tfrecord(image_list,label_list) show()

總結(jié)

以上是生活随笔為你收集整理的实现TFrecords文件的保存与读取的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。