TensorFlow可以使用tf.keras
实现Keras。
Keras提供了三种后端实现:TensorFlow后端,Theano后端和CNTK后端。
如果我想构建自定义图层,可以在调用函数中添加tf.keras.backend.theano.tensor.dot
和tf.keras.backend.theano.gradient.disconnected_grad
吗?
例如,TensorFlow(https://www.tensorflow.org/tutorials/eager/custom_layers)中只有一个程序:
class MyDenseLayer(tf.keras.layers.Layer):
def __init__(self, num_outputs):
super(MyDenseLayer, self).__init__()
self.num_outputs = num_outputs
def build(self, input_shape):
self.kernel = self.add_variable("kernel",
shape=[int(input_shape[-1]),
self.num_outputs])
def call(self, input):
return tf.matmul(input, self.kernel)
我可以将通话功能更改为:
def call(self, input):
return tf.keras.backend.theano.tensor.dot(self.kernel,tf.keras.backend.theano.gradient.disconnected_grad(input))