gpt4 book ai didi

python - 当其中有未知元素时,操纵张量形状的正确方法是什么?

转载 作者:太空宇宙 更新时间:2023-11-03 10:47:44 25 4
gpt4 key购买 nike

假设我有一个形状为 (None, None, None, 32) 的张量,我想将其 reshape 为 (None, None, 32),其中中间维度是原始维度的两个中间维度的乘积。这样做的正确方法是什么?

最佳答案

import keras.backend as K

def flatten_pixels(x):
shape = K.shape(x)
newShape = K.concatenate([
shape[0:1],
shape[1:2] * shape[2:3],
shape[3:4]
])

return K.reshape(x, newShape)

Lambda 层中使用它:

from keras.layers import Lambda

model.add(Lambda(flatten_pixels))

小知识:

  • K.shape 返回张量的“当前”形状,包含数据 - 这是一个包含所有维度的 int 值的 Tensor。它仅在运行模型时正确存在,不能用于模型定义,只能用于运行时计算。
  • K.int_shapetuple 的形式返回张量的“定义”形状。这意味着变量维度将包含 None 值。

关于python - 当其中有未知元素时,操纵张量形状的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58303778/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com