numpy - 将 numpy 转换为张量(keras)(损失函数)
问题描述
我正在尝试在以下形状上定义损失函数: (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))
但我不知道如何在 tensrflow 中做到这一点,我正在使用 tensorflow 2 和 keras。
解决方案
我认为您正在寻找的是:
tf.keras.backend.sum(tf.sqrt(tf.keras.backend.sum(tf.square(labels - predictions), axis=3)))
和axis = 3
批次
推荐阅读
- python - python seek() 从开始还是从当前位置?
- javascript - 使用 Javascript 循环横幅
- reactjs - 使用 Gatsby 设置内容预览页面
- vba - 如何从 vba 中的网站访问单选按钮
- mysql - 删除大型 MySQL 数据库
- security - Fiware pep-proxy 和 idm 通信问题
- javascript - 使用 javascript 在单元格内的文本上创建 url 链接
- angular - 无法读取 null 的属性“必需”
- node.js - node.js javascript全局变量范围解析分配获取API
- scala - scala中(Monad)Option.size的可能用途是什么