Перевести numpy в тензор (керас) (функция потерь) - PullRequest
0 голосов
/ 03 мая 2020

Я пытаюсь определить функцию потерь для следующей формы: (NUM_OF_STROKES, STROKE_LEN, 2) Например, допустим, скажем, NUM_OF_STROKES = 1, STROKE_LEN = 4, это может быть как: [[[x1,y1], [x2,y2], [x3,y3], [x4,y4]]]

Я хочу, чтобы моей функцией потерь были расстояния между двумя соответствующими точками (сумма всех расстояний). Например:

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))

Но я не знаю, как это сделать в tennflow, я работаю с tenorflow 2, keras.

1 Ответ

0 голосов
/ 05 мая 2020

Я думаю, что вы ищете:

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

и axis = 3 для партии

...