def test_forward1(self): x = np.random.randn(1, 3, 224, 224).astype('f') _model = chainer.links.VGG16Layers(None) _model.to_gpu() with chainer.using_config('train', False): with chainer.using_config('enable_backprop', False): out_layer_name = 'fc8' _y = _model.forward(x, [out_layer_name])[out_layer_name] model = VGG16() layers = _model.available_layers for l in layers: if "conv" in l or "fc" in l: m1 = getattr(model, l) m2 = getattr(_model, l) m1.W.data = m2.W.data m1.b.data = m2.b.data if "fc" in l: m1.W.data = m1.W.data.T model.to_gpu() with dezero.test_mode(): y = model(x) self.assertTrue(array_allclose(y.data, _y.data))
def test_forward4(self): N, C, H, W = 20, 10, 5, 5 x, gamma, beta, mean, var = get_params(N, C, H, W) cy = CF.fixed_batch_normalization(x, gamma, beta, mean, var) with dezero.test_mode(): y = F.batch_nrom(x, gamma, beta, mean, var) self.assertTrue(array_allclose(y.data, cy.data))
def generate_image(): with dezero.test_mode(): fake_images = gen(test_z) img = dezero.cuda.as_numpy(fake_images.data) plt.figure() for i in range(0, 25): ax = plt.subplot(5, 5, i + 1) ax.axis('off') plt.imshow(img[i][0], 'gray') plt.show()
def test_forward2(self): N, C = 8, 3 cl = chainer.links.BatchNormalization(C) l = dezero.layers.BatchNorm() for i in range(10): x, gamma, beta, mean, var = get_params(N, C) cy = cl(x) y = l(x) self.assertTrue(array_allclose(cl.avg_mean, l.avg_mean.data)) self.assertTrue(array_allclose(cl.avg_var, l.avg_var.data)) with dezero.test_mode(): y = l(x) with chainer.using_config('train', False): cy = cl(x) self.assertTrue(array_allclose(cy.data, y.data))
def test_backward1(self): x = np.random.randn(2, 3, 224, 224).astype('f') _model = chainer.links.VGG16Layers(None) with chainer.using_config('train', False): out_layer_name = 'fc8' _y = _model.forward(x, [out_layer_name])[out_layer_name] _y.grad = np.ones_like(_y.data) _y.backward() model = VGG16() layers = _model.available_layers for l in layers: if "conv" in l or "fc" in l: m1 = getattr(model, l) m2 = getattr(_model, l) m1.W.data = m2.W.data m1.b.data = m2.b.data if "fc" in l: m1.W.data = m1.W.data.T with dezero.test_mode(): y = model(x) y.backward() layers = _model.available_layers for l in layers: if "conv" in l: m1 = getattr(model, l) m2 = getattr(_model, l) self.assertTrue(array_allclose(m1.W.data, m2.W.data)) self.assertTrue(array_allclose(m1.b.data, m2.b.data)) elif "fc" in l: m1 = getattr(model, l) m2 = getattr(_model, l) self.assertTrue(array_allclose(m1.W.data, m2.W.data.T)) self.assertTrue(array_allclose(m1.b.data, m2.b.data))
if '__file__' in globals(): import os, sys sys.path.append(os.path.join(os.path.dirname(__file__), '..')) import numpy as np from PIL import Image import dezero from dezero.models import VGG16 url = 'https://github.com/oreilly-japan/deep-learning-from-scratch-3/raw/images/zebra.jpg' img_path = dezero.utils.get_file(url) img = Image.open(img_path) x = VGG16.preprocess(img) x = x[np.newaxis] model = VGG16(pretrained=True) with dezero.test_mode(): y = model(x) predict_id = np.argmax(y.data) model.plot(x, to_file='vgg.pdf') labels = dezero.datasets.ImageNet.labels() print(labels[predict_id])
def test_type1(self): N, C = 8, 3 x, gamma, beta, mean, var = get_params(N, C) with dezero.test_mode(): y = F.batch_nrom(x, gamma, beta, mean, var) self.assertTrue(y.data.dtype == np.float32)
if "__file__" in globals(): import os, sys sys.path.append(os.path.join(os.path.dirname(__file__), "..")) import numpy as np from dezero import test_mode import dezero.functions as F x = np.ones(5) print(x) # When training y = F.dropout(x) print(y) # When testing (predicting) with test_mode(): y = F.dropout(x) print(y)
def test_forward2(self): x = np.random.randn(100, 100) with dezero.test_mode(): y = F.dropout(x) res = array_equal(y.data, x) self.assertTrue(res)