我正在嘗試從 6 個 .bin 文件中讀取 CIFAR-10 數據集,然后創建一個可初始化的迭代器。這是我下載數據的站點,它還包含二進制文件結構的描述。每個文件包含 2500 張圖像。然而,生成的迭代器只為每個文件生成一個張量,一個大小為 (2500,3703) 的張量。這是我的代碼import tensorflow as tffilename_dataset = tf.data.Dataset.list_files("cifar-10-batches-bin/*.bin") image_dataset = filename_dataset.map(lambda x: tf.decode_raw(tf.read_file(x), tf.float32))iter_ = image_dataset.make_initializable_iterator()next_file_data = iter_.get_next()I next_file_data = tf.reshape(next_file_data, [-1,3073])next_file_img_data, next_file_labels = next_file_data[:,:-1], next_file_data[:,-1]next_file_img_data = tf.reshape(next_file_img_data, [-1,32,32,3])init_op = iter_.initializerwith tf.Session() as sess: sess.run(init_op) print(next_file_img_data.eval().shape) _______________________________________________________________________>> (2500,32,32,3)前兩行基于此答案。我希望能夠指定由 生成的圖像數量get_next(),batch()而不是使用每個 .bin 文件中的圖像數量,這里是 2500。這里已經有一個關于展平數據集的問題,但我不清楚答案。特別是,該問題似乎包含來自在別處定義的類函數的代碼片段,我不確定如何實現它。我也試過用 來創建數據集tf.data.Dataset.from_tensor_slices(),用 替換上面的第一行import osfilenames = [os.path.join('cifar-10-batches-bin',f) for f in os.listdir("cifar-10-batches-bin") if f.endswith('.bin')]filename_dataset = tf.data.Dataset.from_tensor_slices(filenames)但這并沒有解決問題。任何幫助將不勝感激。謝謝。
添加回答
舉報
0/150
提交
取消