私はTensorflow(2.0)の最新リリースを学習しており、簡単なコードを実行して行列をスライスしようとしました。デコレータ@ tf.functionを使用して、次のクラスを作成しました。
class Data:
def __init__(self):
pass
def back_to_zero(self, input):
time = tf.slice(input, [0,0], [-1,1])
new_time = time - time[0][0]
return new_time
@tf.function
def load_data(self, inputs):
new_x = self.back_to_zero(inputs)
print(new_x)
したがって、numpy行列を使用してコードを実行すると、数値を取得できません。
time = np.linspace(0,10,20)
magntiudes = np.random.normal(0,1,size=20)
x = np.vstack([time, magntiudes]).T
d = Data()
d.load_data(x)
出力:
Tensor("sub:0", shape=(20, 1), dtype=float64)
このテンソルを派手な形式で取得する必要がありますが、TF 2.0にはrun()またはeval()メソッドを使用するためのクラスtf.Sessionがありません。
あなたが私に提供できる助けをありがとう!
問題は、グラフ内で直接テンソルの値を取得できないことです。だからあなたはどちらかを@edkevekedがtf.print
または次のようにコードを変更します。
class Data:
def __init__(self):
pass
def back_to_zero(self, input):
time = tf.slice(input, [0,0], [-1,1])
new_time = time - time[0][0]
return new_time
@tf.function
def load_data(self, inputs):
new_x = self.back_to_zero(inputs)
return new_x
time = np.linspace(0,10,20)
magntiudes = np.random.normal(0,1,size=20)
x = np.vstack([time, magntiudes]).T
d = Data()
data = d.load_data(x)
print(data.numpy())