【发布时间】:2018-09-09 04:55:50
【问题描述】:
我有一个自定义的损失函数,它似乎是有效的(运行这两行时没有错误,如下所示)
alpha_cost = 2
cost = tf.reduce_mean(tf.where(tf.less(Y * out, 0), tf.squeeze((alpha_cost*out)**2 - tf.sign(Y)*out + tf.abs(Y)), tf.squeeze(tf.abs(Y - out))))
但是,当我实际继续进行模型训练(批量大小为 10,000)时,使用此损失函数会产生以下错误...
InvalidArgumentError(参见上面的回溯):操作的输入 Select_4 类型的 Select 必须具有相同的大小和形状。输入 0: [1,10000] != 输入 1:[10000] [[节点:Select_4 = Select[T=DT_FLOAT, _device="/job:localhost/replica:0/task:0/device:GPU:0"](Less_7, Squeeze_6, Squeeze_7)]]
可能只是需要添加另一个 tf.squeeze 来压缩尺寸...但我尝试了几次,但并没有完全配合,所以这种方法可能存在更大的问题...谢谢求您的帮助!
【问题讨论】:
标签: python tensorflow rank tensor loss-function