ニューラルネットワーク勉強中の
パウで~す。
探せばプログラムはでてくるが
なかなか理解できない><
今回は
参考にして勉強しました。
(プログラム言語はpython,パッケージはchainer v4を使用)
class MLP(chainer.Chain):
def __init__(self, n_mid_units=100,n_out=10):
super(MLP, self).__init__()
# パラメータを持つ層の登録
with self.init_scope():
self.l1 = L.Linear(None, n_mid_units)
self.l2 = L.Linear(n_mid_units, n_mid_units)
self.l3 = L.Linear(n_mid_units, n_out)
def __call__(self, x):
# データを受け取った際のforward計算を書く
h1 = F.relu(self.l1(x))
h2 = F.relu(self.l2(h1))
return self.l3(h2)
このプログラムの意味を理解するのに時間がかかった><
ChainerのChainをもっと楽に書く – ご注文は機械学習ですか?ここに
chainer.Chainのモデル定義の書き方があって
助かりました。
これで僕でも好きな層数に書き換えられる!!
chainerは最初からいろんなディープラーニングの
計算式が入っているらしくSGD、Adamなど
少し名前を変えるだけで
実装できるっぽいです
便利!!
(参考文献:Optimizer : 深層学習における勾配法について)
その計算式を自作するとしたらどうやってやるのか...??
とりあえず次は
畳み込みニューラルネットワークに挑戦!!