使用data_flow_ops构造batch数据集

1. tf.unstack(number, axis=0)  表示对数据进行拆分

import tensorflow as tf
import numpy as np


data = np.array([[1, 2, 3],
                 [2, 3, 4],
                 [4, 5, 6]])

filenames = tf.unstack(data)  #表示输入的数据
with tf.Session() as sess:
    for filename in filenames: 
        print(sess.run(filename))
# [1, 2, 3]
# [4, 5, 6]
# [7, 8, 9]

 

对数据进行合理的解读

import tensorflow as tf
from tensorflow.python.ops import data_flow_ops
import numpy as np

# 构造初始的数据
image_paths_placeholder = tf.placeholder(tf.string, shape=(None, 3), name='image_path')
label_paths_placeholder = tf.placeholder(tf.int32, shape=(None, 3), name='labels')
# 构造输入的队列
input_queue = data_flow_ops.FIFOQueue(capacity=3,
                                      dtypes=[tf.string, tf.int32],
                                      shapes=([3, ], [3, ]),
                                      shared_name=None, name=None)
# 将数据放入
enqueue_op = input_queue.enqueue_many([image_paths_placeholder, label_paths_placeholder])
# 进行变量初始化
init = tf.global_variables_initializer()

X = np.array([['1', '2', '3'], ['4', '5', '6'], ['7', '8', '9']])
Y = np.array([[1, 1, 1], [2, 2, 2], [3, 3, 3]])
filename_labels = []
with tf.Session() as sess:

    # 将数据进行打包输出
    filenames, labels = input_queue.dequeue()
    # print(sess.run(filenames))
    images = []
    for filename in tf.unstack(filenames): # 将数据集按照axis=0进行拆分
        images.append(filename) # 将数据进行拆分, 这里可以对图片进行处理
        # print(sess.run(filename))
    filename_labels.append([images, labels]) # 将图片和标签进行添加
    #
    # # 使用图片和标签构造batch_size数据集
    image_batch, label_batch = tf.train.batch_join(
        filename_labels, batch_size=1,
        shapes=[(), ()], enqueue_many=True,
        capacity= 4 * 10,
        allow_smaller_final_batch=True
    )
    image_batch = tf.identity(image_batch, 'image_batch')
    enqueue_op.run(feed_dict={image_paths_placeholder: X, label_paths_placeholder: Y})

    x = sess.run([image_batch])
    print(1)
    # print(sess.run(image_batch))
    # 将数据进行输入

 

上一篇:sess = tf.session(config=tf.ConfigProto(log_device_placement=True))时的警告信息


下一篇:01tensorflow常量与变量