※現在、ブログ記事を移行中のため一部表示が崩れる場合がございます。
順次修正対応にあたっておりますので何卒ご了承いただけますよう、お願い致します。
# Network definition
class CNN(chainer.Chain):
def __init__(self, n_units, n_out):
super(CNN, self).__init__(
conv1=L.Convolution2D(None, 36, 3), # 畳み込み
conv2=L.Convolution2D(None, 36, 4), # 畳み込み
l1=L.Linear(None, n_units[0]), # -> n_units[0]
l2=L.Linear(None, n_units[1]), # n_units[0] -> n_units[1]
l3=L.Linear(None, n_out), # n_units[1] -> n_out
)
def __call__(self, x):
c1 = F.relu(self.conv1(x)) # 畳み込み
c2 = F.relu(self.conv2(c1)) # 畳み込み
p1 = F.max_pooling_2d(c2,2) # プーリング
h1 = F.relu(self.l1(p1))
h2 = F.relu(self.l2(h1))
return self.l3(h2)
CIFAR-10$ python train_cifar4.py -g 0 -u 500 500 GPU: 0 # number: 50000 # units: [500, 500] # Minibatch-size: 100 # epoch: 20 epoch main/loss validation/main/loss main/accuracy validation/main/accuracy elapsed_time 1 1.37013 1.07603 0.50554 0.6189 10.172 2 0.925518 0.927358 0.674221 0.6721 20.1767 3 0.702369 0.863335 0.75472 0.698 30.1597 4 0.497263 0.943865 0.826219 0.6971 40.1821 5 0.309668 1.07688 0.89288 0.6817 50.2104 6 0.190367 1.31478 0.934821 0.6863 60.2692 7 0.114691 1.6023 0.961002 0.6772 70.3088 8 0.0909024 1.62564 0.969121 0.6843 80.3344 9 0.081165 1.91912 0.973141 0.6817 90.3658 10 0.0655271 1.89566 0.9781 0.6801 100.399 11 0.0500345 2.14553 0.983081 0.6807 110.461 12 0.0604023 2.11143 0.980221 0.6803 120.45 13 0.0505119 2.14404 0.98318 0.6804 130.529 14 0.0511697 2.21828 0.98332 0.6772 140.634 15 0.0505931 2.21631 0.983 0.6765 150.707 16 0.0434303 2.23873 0.98596 0.6814 160.816 17 0.037501 2.39804 0.98786 0.6787 170.89 18 0.0337717 2.64839 0.989279 0.6776 180.98 19 0.0455601 2.3579 0.985121 0.6756 191.067 20 0.0406653 2.50223 0.98644 0.6817 201.16 CIFAR-10$