Dan*_*ola 4 keras tensorflow keras-layer tf.keras tensorflow2.0
我已经使用 TensorFlow 2.1.0Layer在 中实现了一个自定义tf.keras。
过去,在使用独立的 Keras 时,重要的是compute_output_shape(input_shape)在任何自定义层中定义方法,以便可以创建计算图。
现在,转移到 TF2 后,我发现即使我从自定义实现中删除了该方法,该层仍然可以按预期工作。显然,它可以在 Eager 和图形模式下工作。这是我的意思的一个例子:
from tensorflow.keras.layers import Layer, Input
from tensorflow.keras.models import Sequential
import numpy as np
class MyLayer(Layer):
def call(self, inputs):
return inputs[:, :-1] # Do something that changes the shape
m = Sequential([MyLayer(), MyLayer()])
m.predict(np.ones((10, 3))) # This would not have worked in the past
Run Code Online (Sandbox Code Playgroud)
可以说compute_output_shape()不再需要了吗?我错过了什么重要的东西吗?
在文档中没有明确提及 remove compute_output_shape(),尽管没有一个示例明确实现它。
谢谢
Tensorflow 文档中没有提到它,但在O'RIELLY Publications 的 O'RIELLY Publications 的第 12 章, Custom Models and Training with TensorFlow中,使用 Scikit-Learn 和 Tensorflow 进行机器学习的动手实践(第 2 版更新为 Tensorflow 2),由 Aurelien 编写Geron,如下面的屏幕截图所示:
要回答您的问题,是的,可以肯定地说compute_output_shape,除非图层是动态的,否则不需要。
这在未使用的自定义层上的这个Tensorflow 教程中很明显compute_output_shape。
希望这可以帮助。快乐学习!
| 归档时间: |
|
| 查看次数: |
1133 次 |
| 最近记录: |