0
私はテンソルフローが初めてで、深い学習ネットワークで遊んでいました。私は、各反復後にすべてのウェイトを四捨五入するカスタムを行いたいと思っていました。テンソルフローライブラリのラウンド関数では、値を小数点以下の桁数に丸めるオプションはありません。 だから私は私が得た出力だから四捨五入カスタムはテンソルの最初のアイテムにのみ働いていたと私は私が間違っているのかについてわからないこのtf.py_func、テンソル内の最初の要素にのみ適用されるカスタムテンソルフロー関数
[ 0.234567 0.71200001 1.20000005 1.70000005] [ 0.235 0.71200001 1.20000005 1.70000005]
たこの
import numpy as np
import tensorflow as tf
from tensorflow.python.framework import ops
np_prec = lambda x: np.round(x,3).astype(np.float32)
def tf_prec(x,name=None):
with ops.name_scope("d_spiky", name,[x]) as name:
y = tf.py_func(np_prec,
[x],
[tf.float32],
name=name,
stateful=False)
return y[0]
with tf.Session() as sess:
x = tf.constant([0.234567,0.712,1.2,1.7])
y = tf_prec(x)
y = tf_prec(x)
tf.global_variables_initializer
print(x.eval(), y.eval())
を書きました。前もって感謝します。理由は次の行の
ここ
ありがとうございました。できます :) – George