Tensorflow 2.2.0错误:使用双向LSTM层时,[预测必须> 0] [条件x> = y不按元素进行:]

混沌

在执行命名实体识别任务时,出现以下错误消息:

tensorflow.python.framework.errors_impl.InvalidArgumentError:  assertion failed: [predictions must be >= 0] [Condition x >= y did not hold element-wise:] [x (bidirectional_lstm_model/time_distributed/Reshape_1:0) = ] [[[-0.100267865 -0.104010895 0.04090859...]]...] [y (Cast_2/x:0) = ] [0]
     [[{{node assert_greater_equal/Assert/AssertGuard/else/_1/Assert}}]] [Op:__inference_train_function_6216]
Function call stack:
train_function

我该如何解决?我检查了我的输入train_xtrain_y张量,它们看起来不错(最后提供了一些示例)。

我最初使用的是条件随机场解码器。我将其替换为密集层,以查看是否更改了错误消息。但是,该误差保持不变,并且与模型的RNN组件相关。

通常,您使用什么策略从TF的内心深处解决此类错误?我尝试在PyCharm上设置调试会话,并跳过了很多TF文件,而没有学习到有关如何解决问题的任何有用信息。

以下是我的网络体系结构:

Model: "bidirectional_lstm_model"
_________________________________________________________________
Layer (type)                 Output Shape              Param #   
=================================================================
encoder_input (InputLayer)   [(None, None)]            0         
_________________________________________________________________
encoder_embedding (Embedding (None, None, 300)         2013300   
_________________________________________________________________
encoder_bidirectional_rnn (B (None, None, 32)          40576     
_________________________________________________________________
time_distributed (TimeDistri (None, None, 25)          825       
=================================================================
Total params: 2,054,701
Trainable params: 41,401
Non-trainable params: 2,013,300
_________________________________________________________________

以上+更多详细信息(损失,优化程序等):

# Create model
encoder_input = keras.Input(shape=(None,), name='encoder_input')
encoder_embedding = layers.Embedding(input_dim=input_vocabulary,
                                     output_dim=embedding_vector_len,
                                     embeddings_initializer=tf.keras.initializers.Constant(embedding_matrix),
                                     trainable=False, name='encoder_embedding')(encoder_input)
encoder_rnn = layers.LSTM(16, return_sequences=True, name='encoder_rnn')
encoder_bidirectional_rnn = layers.Bidirectional(encoder_rnn, name='encoder_bidirectional_rnn')(encoder_embedding)
decoder_dense = layers.TimeDistributed(layers.Dense(number_of_tags, name='decoder_dense'))(encoder_bidirectional_rnn)
model = keras.Model(inputs=encoder_input, outputs=decoder_dense, name='bidirectional_lstm_model')
model.summary()

metrics_precision = tf.keras.metrics.Precision()
metrics_recall = tf.keras.metrics.Recall()
model.compile(
    loss=tf.keras.losses.categorical_crossentropy,
    optimizer='adam',
    metrics=[metrics_precision, metrics_recall]
)

这是mytrain_xtrain_y数组的样子:

# Shapes
train_x.shape  # (9775, 47)  (np.ndarray type)
train_y.shape  # TensorShape([9775, 47, 25])  (Obtained from tf.one_hot)

# Sample (Zero-padded from the right)
train_x[0, :]

# array([4917, 2806, 6357, 2287, 6059,    0,    0,    0,    0,    0,    0,
#      0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
#      0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
#      0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
#      0,    0,    0])

train_y[0, :, :]

# array([[0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1.],
#   [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1.],
#   [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1.],
#   [1., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],  # Non "O" tag
#   [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],  # Non "O" tag
#   [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1.],
#   [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1.],
#   [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1.],
#   [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1.],
#   [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1.],
#   [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1.],
#   [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1.],
#   [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1.],
#   [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1.],
#   [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1.],
#   [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1.],
#   [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1.],
#   [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1.],
#   [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1.],
#   [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1.],
#   [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1.],
#   [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1.],
#   [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1.],
#   [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1.],
#   [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1.],
#   [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1.],
#   [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1.],
#   [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1.],
#   [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1.],
#   [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1.],
#   [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1.],
#   [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1.],
#   [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1.],
#   [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1.],
#   [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1.],
#   [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1.],
#   [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1.],
#   [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1.],
#   [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1.],
#   [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1.],
#   [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1.],
#   [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1.],
#   [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1.],
#   [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1.],
#   [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1.],
#   [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1.],
#   [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1.]], dtype=float32)
威廉

您缺少最后一层激活:

decoder_dense = layers.TimeDistributed(layers.Dense(number_of_tags, name='decoder_dense'))(encoder_bidirectional_rnn)

您应该指定要使用softmax,将激活保留为默认值实际上是线性激活,这意味着您可以具有任何值,因此可以为负值。您应该按如下方式创建最后一个Dense层:

decoder_dense = layers.TimeDistributed(layers.Dense(number_of_tags, activation='softmax', name='decoder_dense'))(encoder_bidirectional_rnn)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Tensorflow 2.0 InvalidArgumentError:断言失败:[条件x == y不按元素进行:]

来自分类Dev

lstm_5层的输入0与该层不兼容:预期ndim = 3,找到的ndim = 2

来自分类Dev

Tensorflow InvalidArgumentError:找到2个根本错误。index [28,0] = 11292不在[0,11272)

来自分类Dev

ValueError:输入0与层lstm_15不兼容:预期ndim = 3,找到ndim = 2

来自分类Dev

断言失败:[条件x == y不按元素进行:]

来自分类Dev

如何让 tensorflow 在具有 1 x 2 内核的 2 x 2 矩阵上进行卷积?

来自分类Dev

如何在x轴值出现多次的python中进行绘制,例如0 1 2 3 2 1 0

来自分类Dev

Haskell函数foldl(\ xy-> x * 2 + y * 2)0行为

来自分类Dev

我卡在显示边界框上。这些错误(cv2.rectangle(img(x1,y1),(x2,y2),(0,255,0),2)TypeError:'numpy.ndarray'对象不可调用)

来自分类Dev

尝试使用Tensorflow 2预测SavedModel时出错

来自分类Dev

是否有用于以规范(一般)形式绘制功能图的js库?例如:x ^ 2 + y ^ 2-5 = 0; x ^ 2-y ^ 2 + 2 = 0; 等等

来自分类Dev

tensorflow 2:使用隐藏层输出的损失

来自分类Dev

Python matplotlib无法在椭圆曲线y ^ 2 + x ^ 3 + x ^ 2 = 0上绘制Acnode(孤立点)

来自分类Dev

在OpenCV上使用Tensorflow 2.X模型

来自分类Dev

仅使用PIP为CPU安装Tensorflow 2.x

来自分类Dev

为什么变量 y 是 0,不是 2?

来自分类Dev

密集层可能会产生InvalidArgumentError:不兼容的形状:[0,2]与[32,2]

来自分类Dev

c ++:x / 60 = 2,但是60 / x = 0?

来自分类Dev

如何在Tensorflow 2.x Keras自定义层中使用多个输入?

来自分类Dev

0 < 2 = ...假?

来自分类Dev

mysql按X分组并显示Total1(当同表的Field = 0时)和Total2(当Field = 1时)

来自分类Dev

ValueError:lstm_17层的输入0与该层不兼容:预期ndim = 3,找到的ndim = 2。收到的完整图形:[无,128]

来自分类Dev

Texture2D:上传压缩的纹理级别时出错:0。glError:0x0500

来自分类Dev

Perl:for(min .. max)使用随机顺序,但我希望按0,1,2的顺序进行,

来自分类Dev

使用 Tensorflow 2 创建 RNN

来自分类Dev

iOS图表错误:线程1:EXC_BAD_ACCESS(代码= 2,地址= 0x2a0c220)

来自分类Dev

用R中的ggplot 2将y轴线更改为x = 0

来自分类Dev

使用CPU的“ Keras后端+ Tensorflow”和“来自Tensorflow的Keras”之间有什么区别(在Tensorflow 2.x中)

来自分类Dev

max_pooling2d_5层的输入0与该层不兼容

Related 相关文章

  1. 1

    Tensorflow 2.0 InvalidArgumentError:断言失败:[条件x == y不按元素进行:]

  2. 2

    lstm_5层的输入0与该层不兼容:预期ndim = 3,找到的ndim = 2

  3. 3

    Tensorflow InvalidArgumentError:找到2个根本错误。index [28,0] = 11292不在[0,11272)

  4. 4

    ValueError:输入0与层lstm_15不兼容:预期ndim = 3,找到ndim = 2

  5. 5

    断言失败:[条件x == y不按元素进行:]

  6. 6

    如何让 tensorflow 在具有 1 x 2 内核的 2 x 2 矩阵上进行卷积?

  7. 7

    如何在x轴值出现多次的python中进行绘制,例如0 1 2 3 2 1 0

  8. 8

    Haskell函数foldl(\ xy-> x * 2 + y * 2)0行为

  9. 9

    我卡在显示边界框上。这些错误(cv2.rectangle(img(x1,y1),(x2,y2),(0,255,0),2)TypeError:'numpy.ndarray'对象不可调用)

  10. 10

    尝试使用Tensorflow 2预测SavedModel时出错

  11. 11

    是否有用于以规范(一般)形式绘制功能图的js库?例如:x ^ 2 + y ^ 2-5 = 0; x ^ 2-y ^ 2 + 2 = 0; 等等

  12. 12

    tensorflow 2:使用隐藏层输出的损失

  13. 13

    Python matplotlib无法在椭圆曲线y ^ 2 + x ^ 3 + x ^ 2 = 0上绘制Acnode(孤立点)

  14. 14

    在OpenCV上使用Tensorflow 2.X模型

  15. 15

    仅使用PIP为CPU安装Tensorflow 2.x

  16. 16

    为什么变量 y 是 0,不是 2?

  17. 17

    密集层可能会产生InvalidArgumentError:不兼容的形状:[0,2]与[32,2]

  18. 18

    c ++:x / 60 = 2,但是60 / x = 0?

  19. 19

    如何在Tensorflow 2.x Keras自定义层中使用多个输入?

  20. 20

    0 < 2 = ...假?

  21. 21

    mysql按X分组并显示Total1(当同表的Field = 0时)和Total2(当Field = 1时)

  22. 22

    ValueError:lstm_17层的输入0与该层不兼容:预期ndim = 3,找到的ndim = 2。收到的完整图形:[无,128]

  23. 23

    Texture2D:上传压缩的纹理级别时出错:0。glError:0x0500

  24. 24

    Perl:for(min .. max)使用随机顺序,但我希望按0,1,2的顺序进行,

  25. 25

    使用 Tensorflow 2 创建 RNN

  26. 26

    iOS图表错误:线程1:EXC_BAD_ACCESS(代码= 2,地址= 0x2a0c220)

  27. 27

    用R中的ggplot 2将y轴线更改为x = 0

  28. 28

    使用CPU的“ Keras后端+ Tensorflow”和“来自Tensorflow的Keras”之间有什么区别(在Tensorflow 2.x中)

  29. 29

    max_pooling2d_5层的输入0与该层不兼容

热门标签

归档