Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/297.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
Python 在Keras回调中访问变量_Python_Keras - Fatal编程技术网

Python 在Keras回调中访问变量

Python 在Keras回调中访问变量,python,keras,Python,Keras,所以我有一个CNN。我已经做了自定义回调,确认有效,但我有一个问题 这是一个示例输出。 迭代5的示例(为简单起见,批量大小为10000) 我有2个回调(测试结果如输出所示): (1) 在每次迭代中更改学习速率。(2) 在每次迭代时打印精度 我有一个外部脚本,通过考虑准确性来确定学习速度 问题: 如何保证每次迭代的准确性,以便外部脚本能够访问它?本质上,每次迭代都是一个可访问的变量。使用AccuracyCallback.accurity 问题 我可以通过不断变化的学习速度。但是,一旦在每次迭代中以

所以我有一个CNN。我已经做了自定义回调,确认有效,但我有一个问题

这是一个示例输出。 迭代5的示例(为简单起见,批量大小为10000)

我有2个回调(测试结果如输出所示): (1) 在每次迭代中更改学习速率。(2) 在每次迭代时打印精度

我有一个外部脚本,通过考虑准确性来确定学习速度

问题: 如何保证每次迭代的准确性,以便外部脚本能够访问它?本质上,每次迭代都是一个可访问的变量。使用
AccuracyCallback.accurity

问题 我可以通过不断变化的学习速度。但是,一旦在每次迭代中以可访问变量的形式传递了它,我如何获得精度呢

示例 我的外部脚本决定迭代1时的学习速率:0.01。如何在迭代1时将精度作为外部脚本中的可访问变量而不是打印语句来获得?

您可以

为了让日志.get('acc')正常工作,您必须告诉Keras监控它:

model.compile(optimizer='...', loss='...', metrics=['accuracy'])

最后,请注意这里的
精度类型为
ndarray
。如果它给您带来任何问题,我建议将其包装起来:
float(accurity)

我已经创建了一个,如前所述。但是问题是,我还有第二个回调,即学习率。我不太明白,如果你能够编写这两个回调,为什么不将它们合并到一个方法中呢?如果不清楚,请编辑您的问题并添加用于设置学习率的回调代码,这样我就可以看到如何合并它。这并不能回答一般问题,因此我将打开一个关于Keras变量和回调的新问题。这些变量不会显示在摘要中。
class AccCallback(keras.callbacks.Callback):

    def on_batch_end(self, batch, logs={}):
        accuracy = logs.get('acc')
        # pass accuracy to your 'external' script and set new lr here
model.compile(optimizer='...', loss='...', metrics=['accuracy'])