读取一个 png 文件并提供一个 cnn Tensorflow
Read a png file and feed a cnn Tensorflow
我正在尝试使用 Tensorflow 构建一个简单的 CNN。问题是我无法读取一个简单的 .png 文件来提供给 CNN。
>>> filename = tf.constant("training/a1.png")
>>> filename
<tf.Tensor 'Const_1:0' shape=() dtype=string>
>>> image_string = tf.read_file(filename)
>>> image_string
<tf.Tensor 'ReadFile_1:0' shape=() dtype=string>
>>> image_decoded = tf.image.decode_png(image_string)
>>> image_decoded
<tf.Tensor 'DecodePng_1:0' shape=(?, ?, ?) dtype=uint8>
正如您在上面的代码中看到的那样。 tf.image.decode_png( image_string ) returns 形状未知的张量。
谢谢vladimir-bystricky!我知道了。这是可能对其他人有帮助的代码。
>>> import tensorflow as tf
>>> filename = tf.constant("training/a1.png")
>>> image_string = tf.read_file(filename)
>>> image_decoded = tf.image.decode_png(image_string)
>>> shape = tf.shape( image_decoded )
>>> sess = tf.Session()
>>> print(sess.run( shape ) )
[360 360 4]
这是正确的行为,因为在您的代码中您只创建了一个图形,而 TF 在此步骤中并没有真正读取 png 文件,而只是创建了将执行此操作的操作,当您在 Session 中启动图形时.运算结果为未知形状的Tensor(此时)。您可以按预定义的尺寸调整或裁剪它。
我正在尝试使用 Tensorflow 构建一个简单的 CNN。问题是我无法读取一个简单的 .png 文件来提供给 CNN。
>>> filename = tf.constant("training/a1.png")
>>> filename
<tf.Tensor 'Const_1:0' shape=() dtype=string>
>>> image_string = tf.read_file(filename)
>>> image_string
<tf.Tensor 'ReadFile_1:0' shape=() dtype=string>
>>> image_decoded = tf.image.decode_png(image_string)
>>> image_decoded
<tf.Tensor 'DecodePng_1:0' shape=(?, ?, ?) dtype=uint8>
正如您在上面的代码中看到的那样。 tf.image.decode_png( image_string ) returns 形状未知的张量。
谢谢vladimir-bystricky!我知道了。这是可能对其他人有帮助的代码。
>>> import tensorflow as tf
>>> filename = tf.constant("training/a1.png")
>>> image_string = tf.read_file(filename)
>>> image_decoded = tf.image.decode_png(image_string)
>>> shape = tf.shape( image_decoded )
>>> sess = tf.Session()
>>> print(sess.run( shape ) )
[360 360 4]
这是正确的行为,因为在您的代码中您只创建了一个图形,而 TF 在此步骤中并没有真正读取 png 文件,而只是创建了将执行此操作的操作,当您在 Session 中启动图形时.运算结果为未知形状的Tensor(此时)。您可以按预定义的尺寸调整或裁剪它。