我正在尝试将随机90度旋转引入图像,作为训练数据管道的一部分。但是,当我尝试使用标量张量填充k
tf.image.rot90()
参数时,我收到以下错误:
TypeError: Fetch argument None has invalid type <class 'NoneType'>
。
当k
是python变量时,该函数按预期工作。以下说明了问题:
import tensorflow as tf
import random
import numpy as np
from matplotlib import pyplot as plt
with tf.Session() as sess:
image = np.reshape(np.arange(0., 4.), [2, 2, 1])
print(image.shape)
# this works
k = random.randint(0, 3)
print('k = ' + str(k))
# this gives an error
# k = random.randint(0, 3)
# k = tf.convert_to_tensor(k, dtype=tf.int32)
# k = tf.Print(k, [k], 'k = ')
# this gives an error
# k = tf.random_uniform([], minval=0, maxval=4, dtype=tf.int32)
# k = tf.Print(k, [k], 'k = ')
image2 = tf.image.rot90(image, k)
img2 = sess.run(image2)
plt.figure
plt.subplot(121)
plt.imshow(np.squeeze(image), interpolation='nearest')
plt.subplot(122)
plt.imshow(np.squeeze(img2), interpolation='nearest')
plt.show()
有没有办法将k
设置为随机值作为培训管道的一部分?或者这是tf.image.rot90()
中的错误?
答案 0 :(得分:2)
k
的{{3}}有一个错误:如果传递的值不是Python整数,则不会返回任何值。我创建了Out-File
help关于此问题,很快就会得到修复。一般来说,你应该能够为Random Forest
绘制一个随机整数标量,但目前的实现并不足以支持它。
您可以尝试使用current implementation自行实现它,但我打算在修复中实现它,因此可能更容易等待: - )。