tensorflow - 级联向量的 Keras L2 归一化
问题描述
我正在尝试在 Keras 中构建一个网络,该网络应分别输出两个维度为 3 和 4 的单位长度向量,并且目前正在使用维度为 7 的最终密集层来实现这一点。我现在的问题是,我现在知道如何在此之后添加一个图层,分别标准化两个向量的长度。据我了解,通常可以使用类似的东西来规范化矢量输出
l2_norm = Lambda(lambda x: K.l2_normalize(x,axis=1))(prevDense)
但不清楚如何改变这两个分别对待两个“半”。有任何想法吗?
解决方案
似乎您想使用Lambda层先对张量进行切片,然后再进行规范化。在这种情况下,您可以执行以下操作:
# slicing the tensors
slice1 = Lambda(lambda x: x[:,:4])(prevDense)
slice2 = Lambda(lambda x: x[:,:3])(prevDense)
l2_norm_slice1 = Lambda(lambda x: K.l2_normalize(slice1,axis=1))(slice1)
l2_norm_slice2 = Lambda(lambda x: K.l2_normalize(slice2,axis=1))(slice2)
希望这可以帮助!
推荐阅读
- docker - 使用 JDBC 输入插件在 Docker 上的 Logstash 不会从 SQL Server 获取所有行
- flutter - 如何突出显示我在字符串中搜索的确切单词,而不仅仅是字符串的开头?
- flutter - 如何实时获取文档长度
- javascript - Reactjs 从获取请求中返回一个对象
- javascript - Nginx 正在尝试打开文件而不是重定向到代理
- python - _joint_log_likelihood 给我错误的值
- sql - 如何按日期获取最后一件商品的价格
- python-3.x - 定期执行功能而不停止其他操作
- r - 使用 R 从 PDF 表单到数据框的文本挖掘
- r - 如果 r 中出现错误,则转到 lapply() 的下一次迭代