python - 用一个无维度重塑 keras 张量
问题描述
我有一个形状的 keras 张量,(None, 61, 80)
我想将它重塑为(61, None * 80)
. None
存在batch_size
维度。我无法使用Keras.backend.reshape
.
我努力了 -
shape = K.int_shape(x)
G = K.reshape(x, [shape[1], shape[0]*shape[2]])
编辑 1
我要执行的操作是对自定义层中的一批张量进行 HoSVD(高阶 SVD)。为此,我必须以矩阵形式展开我的张量。
例如,如果我有一批形状为 (20,61,80) 的张量,其中 20 是批量大小,模式 0 展开将给我一个形状矩阵 (20 , 61*80),模式 1 展开将给出 (61, 20*80) 和模式 3 展开将给出 (80, 20*61)。
我写的功能是 -
def my_unfold(x_tensor,mode=0):
#shape = K.shape(tensor)
num_dims = len(x_tensor.shape)
temp = list(range(0,num_dims))
temp.remove(mode)
change_dims = K.permute_dimensions(x_tensor, [mode ,temp[0],temp[1]])
shape=K.int_shape(change_dims)
new_shape = K.concatenate(shape[0],shape[1]*shape[2])
G = K.reshape(change_dims, new_shape)
return G
解决方案
推荐阅读
- html - 如何创建自定义OL列表?
- input - 为什么使用崇高文本在lua中询问用户输入时没有输出
- spring-boot - OpenAPI 规范 3.0 在浏览器和服务器下拉列表中显示不同的 url
- javascript - 如何根据反应传单中的选定位置飞行然后在位置周围获取边界
- google-cloud-platform - GCP 数据目录 - 一个用于所有项目(一个或多个组织)
- nginx - nginx 配置子域到子文件夹反向代理重定向
- c# - 有没有办法创建超时以尝试与 Xamarin.Forms 连接?
- android-studio - Android Studio:build.gradle(项目)在“项目”中不可见
- c# - 如何将用户返回到前一个问题
- mongodb - FreeCodeCamp 的“MongoDB 和 Mongoose - 创建模型”挑战的问题