python - Tensorflow:垂直堆叠矩阵的最佳方法?
问题描述
假设我有一个代表几个 2D 矩阵的 3D 张量:
3D_tensor = tf.random_uniform([N0, N1, N2], 1, -1))
我想垂直堆叠这些二维矩阵,使得生成的二维张量的尺寸为 [N0+N1, N2]。最好的方法是什么?
numpy 过程如下:
3D = np.array([ [[1,2],[3,4]] , [[1,2],[3,4]] ]) # 3D.shape = (2,2,2)
2D = np.vstack(3D) # D2.shape = (4,2)
解决方案
你可以重塑:
import tensorflow as tf
D3 = tf.constant([ [[1,2],[3,4]] , [[1,2],[3,4]] ])
D2 = tf.reshape(D3, shape=(4,2))
with tf.Session() as sess:
print(D2.eval())
给
[[1 2]
[3 4]
[1 2]
[3 4]]
这对应于您的 numpy 示例。
或者,您可以split
,然后concat
:
D3_split = tf.split(D3, axis=-1, num_or_size_splits=2)
D2_bis = tf.squeeze(tf.concat(D3_split, axis=0))
推荐阅读
- memory-management - 操作系统参与堆栈操作
- node.js - 多个谷歌云功能:如何管理内部库?
- javascript - 将画布导出为 SVG 文件
- kotlin - kotlinx de/serialization 密封类/枚举
- python - Scikit-Learn 的感知器训练准确率低于 100%,尽管数据是线性可分的
- flutter - 从键盘输入输入字段时,模拟器不断冻结
- mysql - MySQL 可以使用其中一个字段是 WHERE 字段 > 0 的复合索引吗?
- https - 想用Tomcat配置HTTPS;没有注册域名
- javascript - Formik resetForm() 在有自定义组件时不会重置整个表单
- python - openpyxl 在只读模式下真的很慢!!如何改进我的脚本?