TensorFlow может реализовать Keras с tf.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))