为了账号安全,请及时绑定邮箱和手机立即绑定

张量值不正确

张量值不正确

慕勒3428872 2021-04-27 21:02:27
我有一个10x10矩阵和一个包含10个元素的向量。10x10矩阵使用随机初始化tf.random_uniform;10向量是一个常数。我将向量和矩阵相乘,tf.matmul然后将结果称为logits。然后,我使用评估并打印logit logits.eval()。然后,我从对数张量中得到最大值,并用1代替,其他所有值都用0代替。我用评估这个张量.eval()并打印结果张量。评估的输出不正确,因为最大值的索引不是1。但是,如果我采用的输出logits.eval()并定义一个常量,然后运行相同的代码并求值,那么结果就可以了。以下是代码: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)我认为有些事情我做得不好,但是尽管我花了大量的时间调试它,但我无法修复它。我将不胜感激。谢谢。
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 123 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信