Tensorflow:带有tf.train.batch的批次标签

Tensorflow:带有tf.train.batch的批次标签,tensorflow,Tensorflow,我有一段代码 la=[0,0,0,0,0,0,1,1,1,1] onehot = tf.one_hot(la, depth=2) #[[1,0],[1,0],[1,0],[1,0],[1,0],[1,0],[0,1],[0,1],[0,1],[0,1]] image_batch,labels_batch=tf.train.batch([resized_image,onehot],batch_size=2,num_threads=1) 当我跑的时候 prints.run[tf.shapeim

我有一段代码

la=[0,0,0,0,0,0,1,1,1,1]
onehot = tf.one_hot(la, depth=2)   #[[1,0],[1,0],[1,0],[1,0],[1,0],[1,0],[0,1],[0,1],[0,1],[0,1]]
image_batch,labels_batch=tf.train.batch([resized_image,onehot],batch_size=2,num_threads=1)
当我跑的时候

prints.run[tf.shapeimage\u batch,labels\u batch]

它一次批处理所有标签,如

[array([ 2, 50, 50,  3]), array([[[ 1.,  0.],
    [ 1.,  0.],
    [ 1.,  0.],
    [ 1.,  0.],
    [ 1.,  0.],
    [ 1.,  0.],
    [ 0.,  1.],
    [ 0.,  1.],
    [ 0.,  1.],
    [ 0.,  1.]],

   [[ 1.,  0.],
    [ 1.,  0.],
    [ 1.,  0.],
    [ 1.,  0.],
    [ 1.,  0.],
    [ 1.,  0.],
    [ 0.,  1.],
    [ 0.,  1.],
    [ 0.,  1.],
    [ 0.,  1.]]], dtype=float32)]
它应该输出如下内容

[array([ 2, 50, 50,  3]), array([[[ 1.,  0.],

   [[ 1.,  0.]]], dtype=float32)]
不是吗?由于批量大小为2,每次拍摄2张图像和相应的标签。 我是CNN和机器学习的新手。谢谢

根据tf.train.batch的Tensorflow文件

由于默认情况下enqueue_many=False且输入onehot的形状为[10,2],因此此处的输出标签_batch shape变为[batch_size,10,2]

如果enqueue_many=True,则此处仅输出标签_batch将变为[batch_size,2]


希望这有帮助。

hii我得到了值错误:尺寸50和10不兼容。我调整大小的图像形状是[array[50,50,3],一个热形状是[array[10,2].\uTF.train.batch的Tensorflow文档说,所有张量的成员在第一个尺寸中都应该具有相同的大小。我想,我必须重塑为[2,50,50,3]和[2,10,2]?你能解释一下吗。我想因为你有50个图像样本,只有10个标签,不是吗?不,我只有10个图像,每个形状[50,50,3]。有什么建议吗?你的意思是你的大小调整后的图像形状是[10,50,50,3]?不,是[50,50,3],一个是[10,2],我想[10,50,50,3]第一维是通道,然后是图像,标签=tf.train.batch[resized_image,onehot],enqueue_many=True,batch_size=2,num_threads=1是否假设50和10作为通道???