tensorflow 2.xであることを前提に書きます。普通に関数を作って呼び出すだけです。注意すべき点があるとすれば、数学関数はtensorflow.mathの関数を使うことでしょうか。
python
1def my_sigmoid(x):
2 return 1.0 / (1.0 + tf.math.exp(-x))
以下、試験結果です。
python
1input_img = Input(shape=(240, 320, 3))
2x_1 = Conv2D(16, (3, 3), padding='same')(input_img)
3x_1 = BatchNormalization()(x_1)
4x_1 = Activation(my_sigmoid)(x_1) # my_sigmoidに入れ替えた
5x_1 = MaxPooling2D((2, 2), padding='same')(x_1)
6model = Model(inputs=input_img, outputs=x_1)
7model.summary()
実行結果は下記の通り。
terminal
1Model: "model"
2_________________________________________________________________
3Layer (type) Output Shape Param #
4=================================================================
5input_1 (InputLayer) [(None, 240, 320, 3)] 0
6_________________________________________________________________
7conv2d (Conv2D) (None, 240, 320, 16) 448
8_________________________________________________________________
9batch_normalization (BatchNo (None, 240, 320, 16) 64
10_________________________________________________________________
11activation (Activation) (None, 240, 320, 16) 0
12_________________________________________________________________
13max_pooling2d (MaxPooling2D) (None, 120, 160, 16) 0
14=================================================================
15Total params: 512
16Trainable params: 480
17Non-trainable params: 32
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/06/23 03:36
2020/12/29 07:38