質問: 現在、深層学習について勉強している状態でプログラムの構成について試行錯誤しているのですがtensorflowについて一つお聞きしたいです。 tensorflowではモデルを作成し、セッションを実行するまでが1セットであると認識しているのですが、これを訓練データによる学習とテストデータにテストにて用いる活性化関数を分けることは可能でしょうか? 中間層の活性化関数を分ける事でデータの量子化を行えないかと考えています。 可能な限り教えていただきたいです。
回答: 結論から言うと可能です。 ニューラルネットモデルのファイルを2つ作る必要があります。学習用とテスト用のモデルです。それぞれ活性化関数のみ違い、層の構造などは同じものを用意します。 あとは、学習を終えた後にtf.trainl.Saver()にあるsaveメソッドで学習したパラメータを保存し、テスト時にテスト用モデルでそのパラメータをロードすれば、活性化関数は異なるが学習したパラメータでテストすることができます。 注意して欲しいのが、活性化関数のみを変えることができると言うことです。層の構造やフィルター数、ストライドなどを変えてしまうとパラメータの要素数そのものが変わってしまうため、エラーが出ます。 僕自身、試しにやってみましたが、活性化関数のみ変えただけではエラーは起こりませんでした。ご参考までに。