Keras 调用层conv2d_3时使用的输入为';t是符号张量

Keras 调用层conv2d_3时使用的输入为';t是符号张量,keras,image-recognition,autoencoder,Keras,Image Recognition,Autoencoder,您好,我正在为一类分类构建图像分类器,其中我在运行此模型时使用了autoencoder。我收到此错误(ValueError:Layer conv2d_3是使用非符号张量的输入调用的。接收类型:。完整输入:[(128,128,3)]。该层的所有输入都应为张量。) 在这里: 形状不是张量 这样做: from keras.layers import * inputTensor = Input(input_shape) x = Conv2D(16, (3, 3), activation='relu',

您好,我正在为一类分类构建图像分类器,其中我在运行此模型时使用了autoencoder。我收到此错误(ValueError:Layer conv2d_3是使用非符号张量的输入调用的。接收类型:。完整输入:[(128,128,3)]。该层的所有输入都应为张量。)

在这里:

形状不是张量

这样做:

from keras.layers import *
inputTensor = Input(input_shape)
x = Conv2D(16, (3, 3), activation='relu', padding='same')(inputTensor)

关于自动编码器的提示 您应该将编码器和解码器作为单独的型号分开。稍后,您可能只想与其中一个一起工作

编码器:

inputTensor = Input(input_shape)
x = ....
encodedData = MaxPooling2D((2, 2), padding='same')(x)

encoderModel = Model(inputTensor,encodedData)
encodedInput = Input((4,4,8))
x = ....
decodedData = Conv2D(1, (3, 3), activation='sigmoid', padding='same')(x)

decoderModel = Model(encodedInput,decodedData)
autoencoderInput = Input(input_shape)
encoded = encoderModel(autoencoderInput)
decoded = decoderModel(encoded)

autoencoderModel = Model(autoencoderInput,decoded)
解码器:

inputTensor = Input(input_shape)
x = ....
encodedData = MaxPooling2D((2, 2), padding='same')(x)

encoderModel = Model(inputTensor,encodedData)
encodedInput = Input((4,4,8))
x = ....
decodedData = Conv2D(1, (3, 3), activation='sigmoid', padding='same')(x)

decoderModel = Model(encodedInput,decodedData)
autoencoderInput = Input(input_shape)
encoded = encoderModel(autoencoderInput)
decoded = decoderModel(encoded)

autoencoderModel = Model(autoencoderInput,decoded)
自动编码器:

inputTensor = Input(input_shape)
x = ....
encodedData = MaxPooling2D((2, 2), padding='same')(x)

encoderModel = Model(inputTensor,encodedData)
encodedInput = Input((4,4,8))
x = ....
decodedData = Conv2D(1, (3, 3), activation='sigmoid', padding='same')(x)

decoderModel = Model(encodedInput,decodedData)
autoencoderInput = Input(input_shape)
encoded = encoderModel(autoencoderInput)
decoded = decoderModel(encoded)

autoencoderModel = Model(autoencoderInput,decoded)

请共享完整的代码和错误的完整堆栈跟踪。复制行为的样本数据也会有帮助。这是否足够?InputSensor=Input(Input_shape)错误:-输入名称未定义
来自keras.layers import*
再次,它不是
Input_shape
,这是
autoencoderInput
.autoencoder\u model.fit错误值错误:检查目标时出错:预期model\u 2有4个维度,但得到了具有形状(300,1)autoencoder\u model的数组。fit错误自动编码器的输出与输入相等,您不应该在那里使用类或Y。只有
x\u列车
x\u列车