【问题标题】:Tensorflow sum up on given indexesTensorFlow 总结给定索引
【发布时间】:2018-03-16 06:27:34
【问题描述】:

我正在尝试获取两个矩阵的差异,以便我可以定义我的损失函数。模型很简单,我有一个输入矩阵和一个输出矩阵。

将 X 定义为输入矩阵

定义Y为输出矩阵

通常我会做一个tf.reduce_mean(tf.abs(X-Y)),但这是不可能的,因为矩阵 X 包含 nan 值

所以我想要做的是将 X 相加,其中Falsetf.is_nan(X) 给出,然后我将在与 X 相加的相同索引处相加 Y。然后我将定义我的损失为 loss = tf.abs(reduce_nan_sum(X)-reduce_nan_sum(Y))

with tf.Session() as sess:
    sess.run(init)
    print(sess.run(tf.is_nan(X), feed_dict={X: vals}))

[[False, False,  True],
 [False,  True, False]]

样本 X 和 Y 值

X = [[0.,  1.,  nan],
    [2.,  nan, 0.5]]

Y = [[0.002,  0.967,  0,2],
    [1.956,  0.3, 0.487]] 

【问题讨论】:

    标签: python tensorflow machine-learning


    【解决方案1】:

    NaN 可以用零替换以进行操作。使用与Replace nan values in tensorflow tensor相同的解决方案

    sess.run(tf.reduce_mean(tf.abs(tf.where(tf.is_nan(x), tf.zeros_like(x), x)-y)))
    

    【讨论】:

      猜你喜欢
      • 2019-04-06
      • 1970-01-01
      • 1970-01-01
      • 2017-12-25
      • 1970-01-01
      • 2019-10-04
      • 1970-01-01
      • 2017-12-05
      • 1970-01-01
      相关资源
      最近更新 更多