以numpy而不是tensorflow计算keras度量

bz4sfanl  于 2021-09-13  发布在  Java
关注(0)|答案(1)|浏览(432)

我试图用numpy而不是tensorflow来计算keras度量。
由于您通常不需要通过纯度量的梯度流,因此可以用numpy计算度量。
我延伸 tf.keras.metrics.Metrics 并覆盖了 update_state() 方法。好了,我明白了 y_truey_pred as类型 tensorflow.python.framework.ops.Tensor 有型 (None, 64, 64, 64, 6) 不幸的是,我无法将Tensor转换为numpy数组。我认为这是因为度量是预编译的,因此还没有可用的值(这就是为什么第一个形状是none)?
我试着用 y_true.eval() , y_true.numpy() ,提供一个会话,例如。, y_true.eval(session=session) 具有 session=tf.compat.v1.Session()tf.compat.v1.get_default_session() -没有一个奏效。
如何计算单位为numpy的度量?不幸的是,我不能仅仅使用tensorflow函数重新实现所有numpy函数,因为我想使用特定的包。
我正在使用 tensorflow 2.5, keras 2.4.3

5uzkadbs

5uzkadbs1#

将函数 Package 在 tf.py_function https://www.tensorflow.org/api_docs/python/tf/py_function
keras希望事先构建一个图,但numpy要求计算非常紧迫。 py_function 允许稍后在实际值可用时进行计算。

相关问题