2017-11-09 7 views
0

2Dテンソルの特定の列にスケーラーを乗算する方法はtf関数を使用していますか?2Dテンソルの特定の列にスケーラーを掛けてください

行列の2番目と3番目の列に2を掛けます。

[[2,3,4,5]、[4,3,4,3]] - [[2,6,8,5]、 [4,6,8,3]]

ありがとうございました。

編集:

ご回答ありがとうございます。残念ながら私はtf.Variableを使用していないので、tf.sliceを使用する必要があります。

私がしようとしているのは、DC成分とナイキスト周波数成分を除いて、片面PSDの2つですべての成分を乗算して、両面スペクトルから片面スペクトル。

これは、numpy配列の場合、2 * PSD [、1:-1]に対応します。ここ

はtf.assignとtf.sliceと私の試みである:

X [ 'PSD'] = tf.assign(tf.slice(X [ 'PSD']、[0,1]、[ tf.shape(x ['PSD'])[1] - 2])、 tf.scalar_mul(2、tf.slice(x ['PSD']) (PSD ')[1] - 2]))))))、[0,1]、[tf.shape(x [' PSD '])[0]、tf.shape(x [' PSD '])密度。しかし

: はAttributeError:「テンソル」オブジェクトはテンソルが可変である場合は、あなたが更新してtf.assignを使用したい列をスライスすることによってこれを行うことができます

答えて

0

「を割り当てる」は属性を持っていない:

X [「PSD」] = tf.concat([:2を乗じた中央のスライスおそらくない最も効率的な方法で、3種類のスライスを取り、それらを一緒に連結することになったが、それは動作します

x = tf.Variable([[2,3,4,5],[4,3,4,3]]) 
x = tf.assign(x[:,1:3], x[:,1:3]*2)  # update the second and third columns and assign 
              # the new tensor to x ​ 
with tf.Session() as sess: 
    tf.global_variables_initializer().run() 
    print(sess.run(x)) 
#[[2 6 8 5] 
# [4 6 8 3]] 
0

tf.slice(x ['PSD'] (x ['PSD']、[0,1])、 tf.scalar_mul(2、tf.slice(x ['PSD']、[0、1])[0、0]、[tf.shape tf.shape(x ['PSD'])[1] - 2]))、 tf.slice(x ['PSD']、[tf.shape(x ['PSD']) 1、#1、#2、#3、#4、#5、 。

関連する問題