TypeError:将形状转换为TensorShape时出错:只能将size-1数组转换为Python标量

时间:2018-09-23 20:31:35

标签: keras keras-layer autoencoder

我正在尝试在Jupyter Notebook的Keras中使用CNN构建文本自动编码器。我正在使用IMDB数据集,该数据集包含25,000个2列示例,其中之一是评论和评级。
我首先进行标记并将其转换为数字序列,并填充到2340(最大序列长度)。 因此,最终我的矩阵大小为25,000 x 2340。 然后,我尝试传递输入层,但没有得到

input_ = Input((2340,)) 
Input(X_train)

然后我a,出现以下错误:

TypeError:将形状转换为TensorShape时出错:只能将size-1数组转换为Python标量。

将X_train分解为训练和验证集后,其形状为(20000,2340)。

请解释为什么会出现此错误。

1 个答案:

答案 0 :(得分:0)

我觉得这里的错误是Input(X_train),根据keras文档的Input函数期望shape =(2340,)表示期望的输入将是2340维矢量的批次,并且默认情况下假定形状为是(None,2340),所以我不认为您需要再次传递Input(X_train)。以下是keras文档页面中的示例

x = Input(shape=(32,))
y = Dense(16, activation='softmax')(x)
model = Model(x, y)

希望这会有所帮助!