質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Keras

Kerasは、TheanoやTensorFlow/CNTK対応のラッパーライブラリです。DeepLearningの数学的部分を短いコードでネットワークとして表現することが可能。DeepLearningの最新手法を迅速に試すことができます。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

5936閲覧

kerasでSIRENという活性化関数を自作したい

siroto

総合スコア2

Keras

Kerasは、TheanoやTensorFlow/CNTK対応のラッパーライブラリです。DeepLearningの数学的部分を短いコードでネットワークとして表現することが可能。DeepLearningの最新手法を迅速に試すことができます。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2020/06/22 11:49

前提・実現したいこと

kerasでSIRENという活性化関数を自作したいです.
先日スタンフォード大学よりImplicitNeuralRepresentationswithPeriodic ActivationFunctionsという論文が発表されました.
この中で触れられているSIRENという活性化関数を使用したいです.
現在使用しているのは,python3.6でkeras,tensorflowです.
relu関数のところをSIRENに変えたいです.
kerasのモジュールには導入されていないようですので,どこにコードの変更を加えればいいのか,もしくは自作する方法を教えてください.
ちなみに今はこのようなモデルを構築しています.

input_img = Input(shape=(240, 320, 3)) x_1 = Conv2D(16, (3, 3), padding='same')(input_img) x_1 = BatchNormalization()(x_1) x_1 = Activation('relu')(x_1) x_1 = MaxPooling2D((2, 2), padding='same')(x_1)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

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/22 14:04

yymmt

総合スコア1615

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

siroto

2020/06/23 03:36

出来ました ありがとうございます. ちなみにkeras内にあるactivations.pyというところに書き込んでもできそうでしたが,こちらのほうが簡単にできました.
kane_study

2020/12/29 07:38

申し訳ございません。 質問させて頂いても宜しいでしょうか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問