我需要帮助来修复这个错误。我在GitHub中得到了SSD(单次多盒检测器)的代码,我将一些TF 1.x函数转换为TF 2.x函数,一切都很好,直到这段代码。
我从https://github.com/ccasadei/SSD-Keras.git得到了这个代码
下面的代码在train.py文件中
我使用这段代码:model.fit(x=train_generator, steps_per_epoch=ceil(n_train_samples / config.batch_size), epochs=config.epochs, callbacks=callbacks, validation_data=val_generator, validation_steps=ceil(n_val_samples / config.batch_size))
当我在Google Colab中运行它时,这段代码产生了一些错误:TypeError: <tf.Tensor 'compute_loss/Const:0' shape=() dtype=int32> is out of scope and cannot be used here. Use return values, explicit Python locals, or TensorFlow collections to access it. Please see https://www.tensorflow.org/guide/function#all_outputs_of_a_tffunction_must_be_return_values for more information.
错误部分在这里:validation_steps=ceil(n_val_samples / config.batch_size))
请帮助我,我与这个错误斗争了一个星期
请评论如果u需要更多的信息
先谢谢你了
1条答案
按热度按时间2ledvvac1#
你需要在compute_loss函数的上方添加
@tf.function
。在你的例子中,它在文件loss.py中。