Shape Error将标记化的全文传递到keras嵌入层

我正在尝试使用tensorflow 2.0构建机器学习模型,该模型将用于对全文ocr数据进行分类,它使用了我正在努力进行的Embedding层。我已经对全文进行了预处理和标记化,并将所有数据保存为泡菜。

我正在从泡菜中装载所有东西,并将全文系列转换为numpy数组,如下所示:

df = pd.read_pickle("my_pickle.pkl")
feature = df['FullTextTokenized']

split_idx = int(len(features) * 0.8)
train_x = features[:split_idx].to_numpy()
test_x = features[split_idx:].to_numpy()

train_y = labels[:split_idx].to_numpy()
test_y = labels[split_idx:].to_numpy()

一切正常。 train_x现在是int32数组的数组。 如果我打印形状,则会得到以下结果,这也是正确的:

print(train_x.shape)
print(train_x[0].shape)

Output:
(126239,)
(1246,)

因此,我开始构建模型,摘要的外观如下:

Layer (type)                 Output Shape              Param #
=================================================================
layer_embedding (Embedding)  (None,1246,300)         30000000
...

所以一切都应该正常工作,因为嵌入层希望与我的train_x具有相同的形状

我正在通过以下方式开始培训:

# Train model
model.fit(train_x,train_y,validation_split=0.1,callbacks=[cp_callback],epochs=3,batch_size=512)

在执行此操作时,出现以下错误,这对我来说毫无意义:

ValueError: Error when checking input: expected layer_embedding_input to have shape (1246,) but got array with shape (1,)

我的数据输入形状为(1240,),如上图所示。 我是否需要执行另一步骤以使tensorflow接受整个数组作为一个输入,还是试图获取给定数组的最低层,即int32?

在此先感谢您提供的帮助。

chengzhangba 回答:Shape Error将标记化的全文传递到keras嵌入层

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3138952.html

大家都在问