Python TensorFlow Keras在测试开始时的自定义回调';我不能凌驾于自己之上

Python TensorFlow Keras在测试开始时的自定义回调';我不能凌驾于自己之上,python,tensorflow,keras,Python,Tensorflow,Keras,我正在尝试创建一个自定义回调,当我调用model.fit(…)时,它会在培训和验证部分的开始和结束时激活 培训部分(on_train_begin/on_train_end)工作得非常好,但是测试部分(on_test_begin/on_test_end)没有被调用。在PyCharm中,它甚至没有显示已经存在的方法。对于火车,我在左边看到了超越标志,但对于测试车没有 如何创建将在验证期间激活的自定义回调?我使用的是TensorFlow1.13(不确定这是否会改变什么) 我想这样做是为了能够记录培训的

我正在尝试创建一个自定义回调,当我调用model.fit(…)时,它会在培训和验证部分的开始和结束时激活

培训部分(on_train_begin/on_train_end)工作得非常好,但是测试部分(on_test_begin/on_test_end)没有被调用。在PyCharm中,它甚至没有显示已经存在的方法。对于火车,我在左边看到了超越标志,但对于测试车没有

如何创建将在验证期间激活的自定义回调?我使用的是TensorFlow1.13(不确定这是否会改变什么)

我想这样做是为了能够记录培训的执行时间和验证的执行时间

我遵循TensorFlow官方网站的指示:

我还在官方网站上找到了“测试开始”和“测试结束”的方法:

类时间历史(tf.keras.callbacks.Callback):
测试开始时的def(slef,日志=无):
打印('测试开始')
测试结束时的def(自身,日志=无):
打印('测试结束')
列车上的def开始(自身,日志=无):
打印(“培训开始”)
列车端def(自身,日志=无):
打印(‘培训结束’)
def CreationModelLP(nbHiddenLayers、nbPerceptrons、nbEpochs、learningRate、myBatchSize、currentFold):
model=tf.keras.models.Sequential()
#输入层
model.add(tf.keras.layers.Flatten(input_shape=(76,))
#隐藏层
对于范围内的i(nbHiddenLayers):
添加(tf.keras.layers.Dense(nbPerceptrons,activation=tf.nn.relu))
#输出层
添加(tf.keras.layers.Dense(2,activation=tf.nn.softmax))
compile(优化器=tf.keras.optimizers.Adam(lr=learningRate),
损失=“稀疏”\u分类”\u交叉熵',
指标=[‘准确度’])
#模型夹带
timeHistory=timeHistory()
historire=model.fit(向量序列[currentFold],类型序列[currentFold],批次大小=myBatchSize,epochs=nbEpochs,
回调=[tensorboard,timeHistory],验证\u数据=(vectPrimTest[currentFold],typeTest[currentFold]))
我希望在验证开始时调用\u test\u begin上的方法和\u test\u end上的方法


谢谢

tensorflow 1.14+中添加了测试上的方法
和预测上的方法
。确保您拥有tensorflow 1.14或tensorflow 2,以便能够使用它们。

我按照您的建议升级到tensorflow 1.14,并且效果良好。我使用的是1.13.1,因为这是conda上可用的最新版本。为了安装1.14,我使用了
pip install tensorflow==1.14