我希望在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)
不过,不幸的是,它似乎不能特别与洗发水优化器一起工作。在
如果您将keras与tensorflow后端一起使用,那么keras后端就是tensorflow。
这意味着当您从keras后端调用一个方法时,它实际上调用了一个tensorflow方法。在
因此,您可以同时使用keras后端操作和tensorflow,并且可以互换使用。在
例如,在给定的代码中:
我可以将
^{pr2}$K.mean(tensor)
改为tf.mean(tensor)
因此,您只需使用tensorflow SVD操作,就像使用keras backend函数一样:)
例如,如果你想
而不是你能做的
相关问题 更多 >
编程相关推荐