トレーニングデータパイプラインの一部として画像にランダムな90度回転を導入しようとしています。しかし、k
のパラメータにtf.image.rot90()
をスカラーテンソルで埋めようとすると、次のエラーが発生します。 TypeError: Fetch argument None has invalid type <class 'NoneType'>
k
がpython変数の場合、この関数は期待通りに機能します。tf.image.rot90()は、パラメータkがテンソルのときに誤差を与えます
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()
のバグですか?
ありがとうございました。聞いてうれしい私は何かばかげてやっていないよ。私はすでにtf.case()で回避策を実装していますが、バグが修正されたときにコードをクリーンアップする可能性があります。 – RobR