- 騙されるな!☆自称・就活ブッダのアホコメント★ [無断転載禁止]©2ch.net
853 :就職戦線異状名無しさん[]:2017/05/21(日) 06:55:40.30 ID:1NGHHoQA - え
|
- 騙されるな!☆自称・就活ブッダのアホコメント★ [無断転載禁止]©2ch.net
854 :就職戦線異状名無しさん[]:2017/05/21(日) 06:56:12.53 ID:1NGHHoQA - お
|
- 騙されるな!☆自称・就活ブッダのアホコメント★ [無断転載禁止]©2ch.net
855 :就職戦線異状名無しさん[]:2017/05/21(日) 06:57:10.96 ID:1NGHHoQA - か
|
- 騙されるな!☆自称・就活ブッダのアホコメント★ [無断転載禁止]©2ch.net
856 :就職戦線異状名無しさん[]:2017/05/21(日) 06:57:54.04 ID:1NGHHoQA - き
|
- 騙されるな!☆自称・就活ブッダのアホコメント★ [無断転載禁止]©2ch.net
857 :就職戦線異状名無しさん[]:2017/05/21(日) 06:58:06.05 ID:1NGHHoQA - く
|
- 騙されるな!☆自称・就活ブッダのアホコメント★ [無断転載禁止]©2ch.net
858 :就職戦線異状名無しさん[]:2017/05/21(日) 06:58:26.01 ID:1NGHHoQA - け
|
- 騙されるな!☆自称・就活ブッダのアホコメント★ [無断転載禁止]©2ch.net
859 :就職戦線異状名無しさん[]:2017/05/21(日) 06:58:39.35 ID:1NGHHoQA - こ
|
- 騙されるな!☆自称・就活ブッダのアホコメント★ [無断転載禁止]©2ch.net
861 :就職戦線異状名無しさん[]:2017/05/21(日) 06:59:33.63 ID:1NGHHoQA - a
|
- 騙されるな!☆自称・就活ブッダのアホコメント★ [無断転載禁止]©2ch.net
862 :就職戦線異状名無しさん[]:2017/05/21(日) 06:59:35.38 ID:1NGHHoQA - a
|
- 騙されるな!☆自称・就活ブッダのアホコメント★ [無断転載禁止]©2ch.net
863 :就職戦線異状名無しさん[]:2017/05/21(日) 07:00:05.48 ID:1NGHHoQA - あ
|
- 騙されるな!☆自称・就活ブッダのアホコメント★ [無断転載禁止]©2ch.net
864 :就職戦線異状名無しさん[]:2017/05/21(日) 07:00:20.22 ID:1NGHHoQA - adam
|
- 騙されるな!☆自称・就活ブッダのアホコメント★ [無断転載禁止]©2ch.net
865 :就職戦線異状名無しさん[]:2017/05/21(日) 07:00:39.54 ID:1NGHHoQA - adam
|
- 騙されるな!☆自称・就活ブッダのアホコメント★ [無断転載禁止]©2ch.net
866 :就職戦線異状名無しさん[]:2017/05/21(日) 07:00:49.44 ID:1NGHHoQA - .
|
- 騙されるな!☆自称・就活ブッダのアホコメント★ [無断転載禁止]©2ch.net
867 :就職戦線異状名無しさん[]:2017/05/21(日) 07:01:45.83 ID:1NGHHoQA - import math
import numpy from chainer import cuda from chainer import optimizer
|
- 騙されるな!☆自称・就活ブッダのアホコメント★ [無断転載禁止]©2ch.net
868 :就職戦線異状名無しさん[]:2017/05/21(日) 07:02:02.07 ID:1NGHHoQA - adam
|
- 騙されるな!☆自称・就活ブッダのアホコメント★ [無断転載禁止]©2ch.net
869 :就職戦線異状名無しさん[]:2017/05/21(日) 07:02:20.31 ID:1NGHHoQA - adam
|
- 騙されるな!☆自称・就活ブッダのアホコメント★ [無断転載禁止]©2ch.net
870 :就職戦線異状名無しさん[]:2017/05/21(日) 07:02:45.69 ID:1NGHHoQA - def __init__(self, alpha=0.001, beta1=0.9, beta2=0.999, eps=1e-8):
self.alpha = alpha self.beta1 = beta1 self.beta2 = beta2 self.eps = eps
|
- 騙されるな!☆自称・就活ブッダのアホコメント★ [無断転載禁止]©2ch.net
871 :就職戦線異状名無しさん[]:2017/05/21(日) 07:03:52.52 ID:1NGHHoQA - def init_state(self, param, state):
xp = cuda.get_array_module(param.data) with cuda.get_device(param.data): state['m'] = xp.zeros_like(param.data) state['v'] = xp.zeros_like(param.data)
|
- 騙されるな!☆自称・就活ブッダのアホコメント★ [無断転載禁止]©2ch.net
872 :就職戦線異状名無しさん[]:2017/05/21(日) 07:04:11.76 ID:1NGHHoQA - def update_one_cpu(self, param, state):
m, v = state['m'], state['v'] grad = param.grad m += (1 - self.beta1) * (grad - m) v += (1 - self.beta2) * (grad * grad - v) param.data -= self.lr * m / (numpy.sqrt(v) + self.eps)
|
- 騙されるな!☆自称・就活ブッダのアホコメント★ [無断転載禁止]©2ch.net
873 :就職戦線異状名無しさん[]:2017/05/21(日) 07:05:19.18 ID:1NGHHoQA - def update_one_gpu(self, param, state):
cuda.elementwise( 'T grad, T lr, T one_minus_beta1, T one_minus_beta2, T eps', 'T param, T m, T v', '''m += one_minus_beta1 * (grad - m); v += one_minus_beta2 * (grad * grad - v); param -= lr * m / (sqrt(v) + eps);''', 'adam')(param.grad, self.lr, 1 - self.beta1, 1 - self.beta2, self.eps, param.data, state['m'], state['v'])
|
- 騙されるな!☆自称・就活ブッダのアホコメント★ [無断転載禁止]©2ch.net
874 :就職戦線異状名無しさん[]:2017/05/21(日) 07:06:38.76 ID:1NGHHoQA - def lr(self):
fix1 = 1. - self.beta1 ** self.t fix2 = 1. - self.beta2 ** self.t return self.alpha * math.sqrt(fix2) / fix1
|
- 騙されるな!☆自称・就活ブッダのアホコメント★ [無断転載禁止]©2ch.net
875 :就職戦線異状名無しさん[]:2017/05/21(日) 07:07:21.85 ID:1NGHHoQA - # Load the model
func = CaffeFunction('path/to/bvlc_reference_caffenet.caffemodel') # Minibatch of size 10 x_data = numpy.ndarray((10, 3, 227, 227), dtype=numpy.float32) ... # (Fill the minibatch here) # Forward the pre-trained net x = Variable(x_data) y, = func(inputs={'data': x}, outputs=['fc8'])
|
- 騙されるな!☆自称・就活ブッダのアホコメント★ [無断転載禁止]©2ch.net
876 :就職戦線異状名無しさん[]:2017/05/21(日) 07:08:01.66 ID:1NGHHoQA - from chainer import cuda
from chainer import optimizer [docs]class SGD(optimizer.GradientMethod): """Vanilla Stochastic Gradient Descent.""" def __init__(self, lr=0.01): self.lr = lr def update_one_cpu(self, param, state): param.data -= self.lr * param.grad def update_one_gpu(self, param, state): cuda.elementwise('T grad, T lr', 'T param', 'param -= lr * grad', 'sgd')(param.grad, self.lr, param.data)
|
- 騙されるな!☆自称・就活ブッダのアホコメント★ [無断転載禁止]©2ch.net
877 :就職戦線異状名無しさん[]:2017/05/21(日) 07:08:37.07 ID:1NGHHoQA - # Stable implementation of log(1 + exp(x))
def softplus(x): xp = cuda.get_array_module(x) return xp.maximum(0, x) + xp.log1p(xp.exp(-abs(x)))
|
- 騙されるな!☆自称・就活ブッダのアホコメント★ [無断転載禁止]©2ch.net
878 :就職戦線異状名無しさん[]:2017/05/21(日) 07:08:55.65 ID:1NGHHoQA - updater = training.StandardUpdater(train_iter, optimizer, device=0)
trainer = training.Trainer(updater, (20, 'epoch'), out='result')
|
- 騙されるな!☆自称・就活ブッダのアホコメント★ [無断転載禁止]©2ch.net
879 :就職戦線異状名無しさん[]:2017/05/21(日) 07:15:38.53 ID:1NGHHoQA - import chainer.computational_graph as c
... g = c.build_computational_graph(vs) with open('path/to/output/file', 'w') as o: o.write(g.dump())
|
- 騙されるな!☆自称・就活ブッダのアホコメント★ [無断転載禁止]©2ch.net
880 :就職戦線異状名無しさん[]:2017/05/21(日) 07:16:22.97 ID:1NGHHoQA - import unittest
from chainer import testing class TestReLU(unittest.TestCase): def test_backward_cpu(self): x = Variable(np.random.randn(3, 2).astype(np.float32)) y = F.relu(x) y.grad = np.random.randn(3, 2).astype(np.float32) y.backward() f = lambda: (F.relu(x).data,) gx, = gradient_check.numerical_grad(f, (x.data,), (y.grad,)) testing.assert_allclose(gx, x.grad)
|
- 騙されるな!☆自称・就活ブッダのアホコメント★ [無断転載禁止]©2ch.net
881 :就職戦線異状名無しさん[]:2017/05/21(日) 07:16:51.59 ID:1NGHHoQA - trainer.extend(extensions.Evaluator(test_iter, model, device=0))
|
- 騙されるな!☆自称・就活ブッダのアホコメント★ [無断転載禁止]©2ch.net
882 :就職戦線異状名無しさん[]:2017/05/21(日) 07:17:05.39 ID:1NGHHoQA - model.to_gpu()
batchsize = 100 datasize = len(x_train) for epoch in range(20): print('epoch %d' % epoch) indexes = np.random.permutation(datasize) for i in range(0, datasize, batchsize): x = Variable(cuda.to_gpu(x_train[indexes[i : i + batchsize]])) t = Variable(cuda.to_gpu(y_train[indexes[i : i + batchsize]])) optimizer.update(model, x, t)
|
- 騙されるな!☆自称・就活ブッダのアホコメント★ [無断転載禁止]©2ch.net
883 :就職戦線異状名無しさん[]:2017/05/21(日) 07:17:23.93 ID:1NGHHoQA - class ParallelMLP(Chain):
def __init__(self): super(ParallelMLP, self).__init__( # the input size, 784, is inferred mlp1_gpu0=MLP(1000, 2000).to_gpu(0), mlp1_gpu1=MLP(1000, 2000).to_gpu(1), # the input size, 2000, is inferred mlp2_gpu0=MLP(1000, 10).to_gpu(0), mlp2_gpu1=MLP(1000, 10).to_gpu(1), )
|
- 騙されるな!☆自称・就活ブッダのアホコメント★ [無断転載禁止]©2ch.net
884 :就職戦線異状名無しさん[]:2017/05/21(日) 07:17:35.73 ID:1NGHHoQA - def __call__(self, x):
# assume x is on GPU 0 z0 = self.mlp1_gpu0(x) z1 = self.mlp1_gpu1(F.copy(x, 1)) # sync h0 = F.relu(z0 + F.copy(z1, 0)) h1 = F.relu(z1 + F.copy(z0, 1)) y0 = self.mlp2_gpu0(h0) y1 = self.mlp2_gpu1(h1) # sync y = y0 + F.copy(y1, 0) return y # output is on GPU0
|
- 騙されるな!☆自称・就活ブッダのアホコメント★ [無断転載禁止]©2ch.net
885 :就職戦線異状名無しさん[]:2017/05/21(日) 07:17:54.76 ID:1NGHHoQA - model = L.Classifier(MLP(1000, 10)) # the input size, 784, is inferred
optimizer = optimizers.SGD() optimizer.setup(model)
|
- 騙されるな!☆自称・就活ブッダのアホコメント★ [無断転載禁止]©2ch.net
886 :就職戦線異状名無しさん[]:2017/05/21(日) 07:18:09.47 ID:1NGHHoQA - updater = training.ParallelUpdater(train_iter, optimizer,
devices={'main': 0, 'second': 1})
|
- 騙されるな!☆自称・就活ブッダのアホコメント★ [無断転載禁止]©2ch.net
887 :就職戦線異状名無しさん[]:2017/05/21(日) 07:18:26.56 ID:1NGHHoQA - model_0 = L.Classifier(MLP(1000, 10)) # the input size, 784, is inferred
|
- 騙されるな!☆自称・就活ブッダのアホコメント★ [無断転載禁止]©2ch.net
888 :就職戦線異状名無しさん[]:2017/05/21(日) 07:18:42.29 ID:1NGHHoQA - import copy
model_1 = copy.deepcopy(model_0) model_0.to_gpu(0) model_1.to_gpu(1)
|