我有一個10x10矩陣和一個包含10個元素的向量。10x10矩陣使用隨機(jī)初始化tf.random_uniform;10向量是一個常數(shù)。我將向量和矩陣相乘,tf.matmul然后將結(jié)果稱為logits。然后,我使用評估并打印logit logits.eval()。然后,我從對數(shù)張量中得到最大值,并用1代替,其他所有值都用0代替。我用評估這個張量.eval()并打印結(jié)果張量。評估的輸出不正確,因?yàn)樽畲笾档乃饕皇?。但是,如果我采用的輸出logits.eval()并定義一個常量,然后運(yùn)行相同的代碼并求值,那么結(jié)果就可以了。以下是代碼:tf.set_random_seed(1)beta = tf.random_uniform([100], dtype=tf.float32, name="beta", seed=2)beta = tf.reshape(beta, [10,10])res = tf.constant([[0., 1., 2., 3., 4., 3., 2., 1., 0., 0.]], dtype=tf.float32)logits = tf.Variable(tf.truncated_normal([1, 10]), name='logits')sess1 = tf.Session()sess1.run(tf.global_variables_initializer())logits = tf.matmul(res, beta)print(logits.eval(session=sess1))tf.where( tf.equal(tf.reduce_max(logits, axis=1, keepdims=True), logits), tf.constant(1, shape=logits.shape), tf.constant(0, shape=logits.shape) ).eval(session=sess1)輸出:[[ 5.64927 11.539942 10.365061 6.367746 10.591797 10.503089 11.0828085 7.0345297 8.477502 8.649068 ]]array([[0, 0, 0, 1, 0, 0, 0, 0, 0, 0]], dtype=int32)我認(rèn)為有些事情我做得不好,但是盡管我花了大量的時間調(diào)試它,但我無法修復(fù)它。我將不勝感激。謝謝。
添加回答
舉報(bào)
0/150
提交
取消