python - 我如何在 Keras 中使用 tensorflow.python.ops?

标签 python tensorflow machine-learning keras

我希望在 Keras 中为自定义优化器执行 SVD(具体来说,我想将 the Shampoo optimizer 移植到 Keras。

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

SVD 能否在纯粹的 Keras 设置中执行,或者我能否以某种方式直接使用 Tensorflow 函数(如果可以,如何使用)?

编辑:仅供将来引用,实际上存在一个包装函数,允许在 Keras 中直接使用 native tf 优化器:

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

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

不幸的是,它似乎并不能专门与 Shampoo 优化器一起使用。

最佳答案

如果您使用带有 tensorflow 后端的 keras,那么 keras 后端 tensorflow。
这意味着当你从keras后端调用一个方法时,它实际上调用了tensorflow的一个方法。

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

例如,在给定的代码中:

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

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

tensor = ...
m = tf.mean(tensor)
...

所以你可以像使用 tensorflow SVD 操作一样使用它,如果它是 keras 后端的函数:)

例如,如果你想拥有

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

比你能做的还要多

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

关于python - 我如何在 Keras 中使用 tensorflow.python.ops?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53581571/

相关文章:

tensorflow - 在 Tensorflow 2 的 fit 方法中使用 Dataset 和 ndarray 有什么区别?

python - 模块 'tensorflow.python.keras.api._v2.keras.layers' 没有属性 'CuDNNLSTM'

tensorflow - 用于预测复杂状态的 Seq2Seq

machine-learning - 期望最大化技术的直观解释是什么?

python - 为什么我手工制作的 numpy 神经网络无法学习?

Python 计数器,用于计算输出中列出的最常见字符串

python - 如何在谷歌应用程序引擎中过滤空列表

python - 解析列表中的元素并将结果存储在字典中

machine-learning - 液态状态机: How is it different to Spiking Neural Network Models

python - Anaconda python、PIL 和 imagingtk