4-8 使用tf.train.string_input_producer讀取列表樣本


tf.train.string_input_producer只是讀入文件還沒有解析,需要tf.WholeFileReader()來解析文件

import tensorflow as tf
# images=['image1.jpg','image2.jpg','image3.jpg','image4.jpg']
# labels=[1,2,3,4]
#
# #創建文件名隊列(也就是內存隊列)
# [images,labels]=tf.train.slice_input_producer([images,labels],
#                               num_epochs=2,#epochs循環數,改成None則只要獲取隊列就有
#                               shuffle=True)#shuffle文件隊列打亂
#                             #輸出兩個tensor
# with tf.Session() as sess:#后端運算
#     sess.run(tf.local_variables_initializer())#上述定義了2和True,但是在后端運行時不會被使用,需要這里的初始化,才能完成賦值
#     tf.train.start_queue_runners(sess=sess)#啟動隊列填充過程
#     for i in range(8):#一個epoachs長度4,2個就是8
#         print(sess.run([images,labels]))#讀取文件隊列
###slice實際輸出是tensor,通過sess.run我們就可以直接獲取tensor
###string實際上是輸出文件隊列,需要從文件隊列數據讀取(不是張量,所以無法sess.run來獲取)

filename=['data/A.csv','data/B.csv','data/C.csv']
file_queue=tf.train.string_input_producer(filename,
                                          shuffle=True,
                                          num_epochs=2)
reader=tf.WholeFileReader()#定義文件讀取器
key,value=reader.read(file_queue)

with tf.Session() as sess:
    sess.run(tf.local_variables_initializer())#變量初始化賦值
    tf.train.start_queue_runners(sess=sess)#開啟隊列讀入
    for i in range(6):
        print(sess.run([key,value]))


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM