简介
我正在使用Tensorflow教程“Deep MNIST for experts”的修改版本,使用Python API进行使用卷积网络的医学图像分类项目。
我想通过对训练集的图像进行随机修改来人为地增加训练集的大小。
问题
当我跑线时:
flipped_images = tf.image.random_flip_left_right(images)
我得到了以下错误:
AttributeError:'numpy.ndarray'对象没有属性'get_shape'
My Tensor“images”是“批量”ndarrays (shape=[batch, im_size, im_size, channels])
的ndarray (shape=[im_size, im_size, channels])
。
为了检查我的输入数据是否以正确的形状和类型打包,我试图在(未修改的)教程“Tensorflow Mechanics 101”中应用这个简单的函数,我得到了同样的错误。
最后,尝试使用以下功能时仍然遇到同样的错误:
tf.image.random_flip_up_down()
tf.image.random_brightness()
tf.image.random_contrast()
问题
由于输入数据通常在Tensorflow中作为ndarrays传输,我想知道:
tf.image.random_flip_left_right
应用到我的训练集中?答案 0 :(得分:11)
这似乎是TensorFlow API中的一个不一致,因为几乎所有其他op函数都接受NumPy数组,而不管是tf.Tensor
。我已提交an issue来跟踪修复程序。
幸运的是,有一个简单的解决方法,使用tf.convert_to_tensor()
。用以下内容替换您的代码:
flipped_images = tf.image.random_flip_left_right(tf.convert_to_tensor(images))