Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Keras 无效参数:索引[0,0]=-4不在[0,40405]中_Keras_Word Embedding_Implementation - Fatal编程技术网

Keras 无效参数:索引[0,0]=-4不在[0,40405]中

Keras 无效参数:索引[0,0]=-4不在[0,40405]中,keras,word-embedding,implementation,Keras,Word Embedding,Implementation,我有一个模型在处理一些数据。我在数据集中添加了一些标记化的单词数据(为了简洁起见,有些截断): 现在,我得到了这个错误: Model: "sequential" _________________________________________________________________ Layer (type) Output Shape Param # =====================================

我有一个模型在处理一些数据。我在数据集中添加了一些标记化的单词数据(为了简洁起见,有些截断):

现在,我得到了这个错误:

Model: "sequential"
_________________________________________________________________
Layer (type)                 Output Shape              Param #   
=================================================================
embedding (Embedding)        (None, 12, 100)           4040500   
_________________________________________________________________
lstm (LSTM)                  (None, 32)                17024     
_________________________________________________________________
dense (Dense)                (None, 32)                1056      
_________________________________________________________________
dense_1 (Dense)              (None, 512)               16896     
_________________________________________________________________
dense_2 (Dense)              (None, 12)                6156      
=================================================================
Total params: 4,081,632
Trainable params: 4,081,632
Non-trainable params: 0
_________________________________________________________________
Train on 4702 samples
Epoch 1/10
2020-03-04 22:37:59.499238: W tensorflow/core/common_runtime/base_collective_executor.cc:217] BaseCollectiveExecutor::StartAbort Invalid argument: indices[0,0] = -4 is not in [0, 40405)
我想这一定是来自我的评论专栏,因为这是我唯一添加的内容

以下是我进行替换之前注释文本的外观:

下面是:

我的完整代码(更改前)如下:

您应该使用
注释\u train
进行培训,而不是使用
x
进行培训,后者接受未知
df
中的任何内容

embedding\u dim=100
可以自由选择。它就像隐藏层中的单位数一样。您可以调整此参数以找到最适合您的模型的参数,也可以调整隐藏层中的单位数


在您的情况下,您需要一个具有两个或多个输入的模型:

  • 注释的一个输入,通过嵌入和处理文本
  • 其余数据的另一个输入,可能通过标准网络
在某个时刻,您将连接这两个分支并继续


此链接提供了一个关于函数API模型的良好教程,并显示了一个具有两个文本输入和一个额外输入的模型:

我在中添加了几行…x中还有一些其他列(确切地说是12列)我想用它来训练。所有这些都是数字数据,注释是字符串数据,这在我尝试训练时给了我一个错误。起初,我删除了注释文本列,这起到了作用。现在我尝试在嵌入注释后保留注释。我想在替换数据后我仍然应该使用x\u train,不?嵌入是为了t他评论道。一个常规的模型就剩下了。你必须研究一个有不止一个输入的模型,并且在某个时候它会混合这两种东西。对。我想我做到了。在我使用了文本到序列,pad到序列之后,我称之为
df.comment\u text=comment\u train
,我认为它正在取代我模型中的注释(text)对于嵌入版本(数字)。我将发布一个屏幕截图。嵌入只能使用
注释\文本
,而不是其他内容进行训练。不能将其余数据与之混合。其余数据需要转到另一个模型输入(顺序模型不支持多个输入)。您需要创建一个功能API模型,其中至少有两个输入,一个用于嵌入,另一个用于其余数据。哦,好的。我需要两个不同的模型?
Model: "sequential"
_________________________________________________________________
Layer (type)                 Output Shape              Param #   
=================================================================
embedding (Embedding)        (None, 12, 100)           4040500   
_________________________________________________________________
lstm (LSTM)                  (None, 32)                17024     
_________________________________________________________________
dense (Dense)                (None, 32)                1056      
_________________________________________________________________
dense_1 (Dense)              (None, 512)               16896     
_________________________________________________________________
dense_2 (Dense)              (None, 12)                6156      
=================================================================
Total params: 4,081,632
Trainable params: 4,081,632
Non-trainable params: 0
_________________________________________________________________
Train on 4702 samples
Epoch 1/10
2020-03-04 22:37:59.499238: W tensorflow/core/common_runtime/base_collective_executor.cc:217] BaseCollectiveExecutor::StartAbort Invalid argument: indices[0,0] = -4 is not in [0, 40405)