如何使用tensorflow.python.ops在喀拉斯?

2024-09-28 20:53:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我希望在Keras中为一个自定义优化器做SVD(特别是,我想将the Shampoo optimizer移植到Keras)。在

在Tensorflow中,我会使用tensorflow.python.ops.linalg_ops.svd(),但是,keras.backend中没有这样的函数。在

SVD可以在纯Keras环境下进行吗,还是可以直接使用Tensorflow函数(如果是的话,如何使用)?在

编辑:为了将来参考,实际上存在一个包装器函数,允许在Keras中直接使用本机tf优化器:

import keras as ks
from tensorflow.contrib.opt import AdamWOptimizer

tfopt = AdamWOptimizer()
ksopt = ks.optimizers.TFOptimizer(tfopt)

不过,不幸的是,它似乎不能特别与洗发水优化器一起工作。在


Tags: the函数importtensorflowopskerasoptimizersvd
1条回答
网友
1楼 · 发布于 2024-09-28 20:53:38

如果您将keras与tensorflow后端一起使用,那么keras后端就是tensorflow。
这意味着当您从keras后端调用一个方法时,它实际上调用了一个tensorflow方法。在

因此,您可以同时使用keras后端操作和tensorflow,并且可以互换使用。在

例如,在给定的代码中:

tensor = ...
m = K.mean(tensor)
...

我可以将K.mean(tensor)改为tf.mean(tensor)

^{pr2}$

因此,您只需使用tensorflow SVD操作,就像使用keras backend函数一样:)

例如,如果你想

tensor = ...
res = K.some_submodule.svd(tensor)
...

而不是你能做的

tensor = ...
res = tensorflow.python.ops.linalg_ops.svd(tensor)
...

相关问题 更多 >