洛谷 P1396 營救(二分答案)
阿新 • • 發佈:2020-10-26
2.1 base layer
layer實了輸入tensor和輸出tensor的操作類,以下為base layer的5個方法,自定義layer只要重寫這些方法就可以了。
- init(): 定義自定義layer的一些屬性
- build(self, input_shape):定義layer需要的權重weights
- call(self, *args, **kwargs):layer具體的操作,會在呼叫自定義layer自動執行
- get_config(self):layer初始化的配置,是一個字典dictionary。
- compute_output_shape(self,input_shape):計算輸出tensor的shape
2.2 例子
# 標準化層 class InstanceNormalize(Layer): def __init__(self, **kwargs): super(InstanceNormalize, self).__init__(**kwargs) self.epsilon = 1e-3 def call(self, x, mask=None): mean, var = tf.nn.moments(x, [1, 2], keep_dims=True) return tf.div(tf.subtract(x, mean), tf.sqrt(tf.add(var, self.epsilon)))def compute_output_shape(self,input_shape): return input_shape # 呼叫 inputs = keras.Input(shape=(None, None, 3)) x = InstanceNormalize()(inputs)