使用Keras Functional API扩展维度后如何连接Tensor?

axzmvihb  于 2023-01-13  发布在  其他
关注(0)|答案(2)|浏览(138)

我在尝试扩展维度:

import tensorflow as tf
inp = tf.keras.layers.Input(shape=(1,))
inp = inp[..., tf.newaxis]
decoder_input = inp
output = tf.concat([inp, decoder_input], 1)
model = tf.keras.models.Model(inp, output )

但是我在最后一行得到一个错误:
发生异常:值错误图断开连接:无法获取图层“tf_op_layer_strided_slice”上的TensorTensor(“input_1:0”,shape=(None,1),dtype=float32)的值。访问了以下之前的图层,没有问题:[]

ulmd4ohb

ulmd4ohb1#

这是您要尝试执行的操作吗?似乎存在变量冲突。您将decoder_input设置为reshape层而不是input层。更改reshape层的名称可修复此问题。

import tensorflow as tf
inp = tf.keras.layers.Input(shape=(1,))

x = tf.keras.layers.Reshape((-1,1))(inp) #Use any of the 3
#x = tf.expand_dims(inp, axis=-1)
#x = inp[...,tf.newaxis]

decoder_input = inp
output = tf.concat([inp, decoder_input], 1)
model = tf.keras.models.Model(inp, output)

model.summary()
Model: "functional_8"
__________________________________________________________________________________________________
Layer (type)                    Output Shape         Param #     Connected to                     
==================================================================================================
input_7 (InputLayer)            [(None, 1)]          0                                            
__________________________________________________________________________________________________
tf_op_layer_concat_4 (TensorFlo [(None, 2)]          0           input_7[0][0]                    
                                                                 input_7[0][0]                    
==================================================================================================
Total params: 0
Trainable params: 0
Non-trainable params: 0
ccgok5k5

ccgok5k52#

如果你想让模型重塑Tensor(a,B)-〉(a,b,1),你可以使用tf.keras.layers.Reshape层。

inp = tf.keras.layers.Input(shape=(1,))
...
decoder_input = inp
output=tf.keras.layers.Reshape((a,b,1))(decoder_input ) #Replace (a,b,1) with your desired shape.
...

相关问题