Tensorflow tf.distribute.MirroredStrategy.scope模式设置vocab_大小不匹配,但未报告错误

Tensorflow tf.distribute.MirroredStrategy.scope模式设置vocab_大小不匹配,但未报告错误,tensorflow,keras,Tensorflow,Keras,我正在使用tf.distribute.MirroredStrategy()来训练textcnn模型,但是当我设置vocab_size=0或其他错误值时,在此模式下不会报告任何错误。如果未使用tf.distribute.MirroredStrategy(),则错误的vocab_大小将立即报告错误 使用错误的vocab_大小值: model=TextCNN(padding\u size,vocab\u size-10,embed\u size,filter\u num,num\u class) co

我正在使用tf.distribute.MirroredStrategy()来训练textcnn模型,但是当我设置vocab_size=0或其他错误值时,在此模式下不会报告任何错误。如果未使用tf.distribute.MirroredStrategy(),则错误的vocab_大小将立即报告错误 使用错误的vocab_大小值:

model=TextCNN(padding\u size,vocab\u size-10,embed\u size,filter\u num,num\u class)
compile(loss='sparse\u categorical\u crossentropy',optimizer=tf.keras.optimizers.Adam(),metrics=['accurity'])
model.fit(训练数据集,历元=历元,验证数据=有效数据集,回调=回调)
错误:

2 root error(s) found.
  (0) Invalid argument:  indices[63,10] = 4726 is not in [0, 4726)
     [[node text_cnn_1/embedding/embedding_lookup (defined at <ipython-input-7-6ef8a4397184>:37) ]]
     [[Adam/Adam/update/AssignSubVariableOp/_45]]
  (1) Invalid argument:  indices[63,10] = 4726 is not in [0, 4726)
     [[node text_cnn_1/embedding/embedding_lookup (defined at <ipython-input-7-6ef8a4397184>:37) ]]
0 successful operations.
0 derived errors ignored. [Op:__inference_train_function_234431]
日志如下(看起来非常好):

Learning rate for epoch 1 is 0.0010000000474974513
2813/2813 [==============================] - 16s 6ms/step - loss: 0.8097 - accuracy: 0.7418 - val_loss: 0.4567 - val_accuracy: 0.8586 - lr: 0.0010
Epoch 2/15
2813/2813 [==============================] - ETA: 0s - loss: 0.4583 - accuracy: 0.8560
Learning rate for epoch 2 is 0.0010000000474974513
2813/2813 [==============================] - 14s 5ms/step - loss: 0.4583 - accuracy: 0.8560 - val_loss: 0.4051 - val_accuracy: 0.8756 - lr: 0.0010
Epoch 3/15
2810/2813 [============================>.] - ETA: 0s - loss: 0.3909 - accuracy: 0.8768
Learning rate for epoch 3 is 0.0010000000474974513
2813/2813 [==============================] - 14s 5ms/step - loss: 0.3909 - accuracy: 0.8767 - val_loss: 0.3853 - val_accuracy: 0.8844 - lr: 0.0010
Epoch 4/15
2811/2813 [============================>.] - ETA: 0s - loss: 0.2999 - accuracy: 0.9047
Learning rate for epoch 4 is 9.999999747378752e-05
2813/2813 [==============================] - 14s 5ms/step - loss: 0.2998 - accuracy: 0.9047 - val_loss: 0.3700 - val_accuracy: 0.8865 - lr: 1.0000e-04
Epoch 5/15
2807/2813 [============================>.] - ETA: 0s - loss: 0.2803 - accuracy: 0.9114
Learning rate for epoch 5 is 9.999999747378752e-05
2813/2813 [==============================] - 15s 5ms/step - loss: 0.2803 - accuracy: 0.9114 - val_loss: 0.3644 - val_accuracy: 0.8888 - lr: 1.0000e-04
Epoch 6/15
2803/2813 [============================>.] - ETA: 0s - loss: 0.2639 - accuracy: 0.9162
Learning rate for epoch 6 is 9.999999747378752e-05
2813/2813 [==============================] - 14s 5ms/step - loss: 0.2636 - accuracy: 0.9163 - val_loss: 0.3615 - val_accuracy: 0.8896 - lr: 1.0000e-04
Epoch 7/15
2805/2813 [============================>.] - ETA: 0s - loss: 0.2528 - accuracy: 0.9188
Learning rate for epoch 7 is 9.999999747378752e-05
2813/2813 [==============================] - 14s 5ms/step - loss: 0.2526 - accuracy: 0.9189 - val_loss: 0.3607 - val_accuracy: 0.8909 - lr: 1.0000e-04
更简单地说,像这样,运行时不出错:

strategy=tf.distribute.MirroredStrategy()
使用strategy.scope():
模型=顺序()
添加(嵌入(1000,64,输入长度=20))
test_数组=np.random.randint(10000,大小=(32,20))
模型预测(测试数组)
为什么