将numpy转换为张量(keras)(损失函数)

问题描述 投票:0回答:1

我想在下面的形状上定义一个损失函数。(NUM_OF_STROKES, STROKE_LEN, 2)例如,NUM_OF_STROKES=1, STROKE_LEN=4, 它可以是这样的:[[[x1,y1], [x2,y2], [x3,y3], [x4,y4]]]

我希望我的损失函数是两个对应点之间的跳动(所有距离的总和)。比如说,在numpy中,我可以这样做。

p1 = [[[a1,b1], [a2,b2], [a3,b3], [a4,b4]]]
p2 = [[[c1,d1], [c2,d2], [c3,d3], [c4,d4]]]
loss = sqrt((a1-c1)^2 + (b1-d1)^2) + ... + sqrt((a4-c4)^2 + (b4-d4)^2)

在numpy中,我可以这样做:np.sum(np.linalg.norm(np.array(p1) - np.array(p2), axis=1))

但我不知道如何在tensrflow中做到这一点,我正在使用tensorflow 2,keras。

numpy keras tensorflow2.0 tensor loss-function
1个回答
0
投票

我想你要找的是。

tf.keras.backend.sum(tf.sqrt(tf.keras.backend.sum(tf.square(labels - predictions), axis=3)))

axis = 3 为该批

© www.soinside.com 2019 - 2024. All rights reserved.