LoginSignup
1
0

More than 5 years have passed since last update.

Chainer4.2向けサンプルコード

Posted at

下記を参考にさせていただき、Chainerの入門的なサンプルコードを動作させたかったが、
Chainerのversionが変わりすぎてそのまま動かなかったのでメモ
http://studylog.hateblo.jp/entry/2015/08/27/225017

環境
Windows 10
Python 3.6.5
Chainer 4.2.0

コード
これで動いた

work1.py
#!/usr/bin/env python
# coding:utf-8
import numpy as np
import chainer
import chainer.links as L
import chainer.functions as F
from chainer import Variable, optimizers

class MyChain():
    def __init__(self):
        self.l = L.Linear(3, 3)

    def __call__(self, x):
         return self.l(x)

#モデルを作る
model = MyChain().l
optimizer = optimizers.SGD().setup(model)

optimizer.add_hook(chainer.optimizer_hooks.WeightDecay(0.0005))

#学習させる回数
times = 100

#与えるベクトル  これが[2,4,6]になって返ってきて欲しい
x = Variable(np.array([[1, 2, 3]], dtype=np.float32))


#正解ベクトルの[2,4,6]
t = Variable(np.array([[2, 4, 6]], dtype=np.float32))

# ここから50回ループ
for i in range(0, times):

    model.cleargrads()

    # ここでモデルに予測させている
    y = model(x)

    # モデルが出した答えを表示
    print(y.data)

    # お馬鹿なモデルが出した答えと、本当の答え([2,4,6])がどのくらい違っているか計算する
    loss = F.mean_squared_error(y, t)

    # その値をモデルに見せて「全然違うじゃねーか!もっと近づけろ!」と学習させる
    loss.backward()
    optimizer.update()

    # 最初に戻って繰り返す

数値はそれっぽいけど正しいコードになっているかわからない。。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0