TypeError:张量流中图像数据的维度无效

时间:2017-04-22 17:43:36

标签: python image matrix matplotlib tensorflow

我正在编译这个程序并且工作正常,但我有一些我没有得到的混淆,

到目前为止,我的代码是:

import matplotlib.image as mi
import os
os.environ["TF_CPP_MIN_LOG_LEVEL"]="3"
import matplotlib.pyplot as plt
import tensorflow as tf
import numpy as np
image="dd.jpg"
read=mi.imread(image)
print(read.shape)
plac=tf.placeholder("uint8",[None,None,3])


slice=tf.slice(read,[500,2000,0],[2000,1,0])
with tf.Session() as tff:
    use1=tff.run(slice,feed_dict={plac:read})

    print(use1.shape)

plt.imshow(use1)
plt.show()

所以我怀疑是:

中实际为[None, None,3]的内容
plac=tf.placeholder("uint8",[None,None,3]

我正确学习了然后,None,None = row,col

placeholder("unit8",[row,col,3] 

我理解它的无限大小的矩阵

但这里的3是什么?

第二个问题是,如果我使用[2000,-1,-1]然后它的工作,但如果我使用[2000,1,0]然后它不工作所以我不明白为什么我必须使用{{1 }

编辑:我试过这个answer [-1,-1],但它无效

1 个答案:

答案 0 :(得分:1)

从你的代码看,3是图像中的通道数(每个RGB通道一个)。关于您的第二个问题,请检查read是否tf.slice的输入符合here提到的要求(链接也解释了-1)。