def make_network(env, h=None, w=None): with env.create_network() as net: if h is None: img = O.placeholder('img', shape=(1, None, None, 3)) else: img = O.variable('img', np.zeros([1, h, w, 3])) net.add_output(img, name='img') _ = img _ = _ - get_env('neural_style.image_mean').reshape(1, 1, 1, 3) _ = O.pad_rb_multiple_of(_, 32) def stacked_conv(prefix, nr_convs, in_, channel, kernel=(3, 3), padding='SAME', nonlin=O.relu): for i in range(1, nr_convs + 1): in_ = O.conv2d('{}_{}'.format(prefix, i), in_, channel, kernel, padding=padding, nonlin=nonlin) return in_ _ = stacked_conv('conv1', 2, _, 64) _ = O.pooling2d('pool1', _, (2, 2)) _ = stacked_conv('conv2', 2, _, 128) _ = O.pooling2d('pool2', _, (2, 2)) _ = stacked_conv('conv3', 3, _, 256) _ = O.pooling2d('pool3', _, (2, 2)) _ = stacked_conv('conv4', 3, _, 512) _ = O.pooling2d('pool4', _, (2, 2)) _ = stacked_conv('conv5', 3, _, 512) _ = O.pooling2d('pool5', _, (2, 2)) for l in get_env('neural_style.content_layers'): net.add_output(net.find_var_by_name(l[0] + '/bias'), name=l[0]) for l in get_env('neural_style.style_layers'): net.add_output(net.find_var_by_name(l[0] + '/bias'), name=l[0])
def forward(img): _ = img _ = conv2d('conv1.1', _, 16, (3, 3), padding='SAME') _ = conv2d('conv1.2', _, 16, (3, 3), padding='SAME') _ = O.pooling2d('pool1', _, kernel=3, stride=2) _ = conv2d('conv2.1', _, 32, (3, 3), padding='SAME') _ = conv2d('conv2.2', _, 32, (3, 3), padding='SAME') _ = O.pooling2d('pool2', _, kernel=3, stride=2) _ = conv2d('conv3.1', _, 64, (3, 3), padding='VALID') _ = conv2d('conv3.2', _, 64, (3, 3), padding='VALID') _ = conv2d('conv3.3', _, 64, (3, 3), padding='VALID') dpc.add_output(_, name='feature')
def forward(img): _ = img _ = O.conv2d('conv1', _, 16, (3, 3), padding='SAME', nonlin=O.relu) _ = O.pooling2d('pool1', _, kernel=2) _ = O.conv2d('conv2', _, 32, (3, 3), padding='SAME', nonlin=O.relu) _ = O.pooling2d('pool2', _, kernel=2) dpc.add_output(_, name='feature')
def forward(img): _ = img _ = O.conv2d('conv1', _, 16, (3, 3), padding='SAME', nonlin=O.identity) _ = O.batch_norm('bn1', _) _ = O.relu(_) _ = O.pooling2d('pool1', _, kernel=2) _ = O.conv2d('conv2', _, 32, (3, 3), padding='SAME', nonlin=O.identity) _ = O.batch_norm('bn2', _) _ = O.relu(_) _ = O.pooling2d('pool2', _, kernel=2) dpc.add_output(_, name='feature')
def make_network(env, end, h, w): with env.create_network() as net: img = O.variable('img', np.zeros([1, h, w, 3])) net.add_output(img, name='img') _ = img _ = _ - get_env('deep_dream.image_mean').reshape(1, 1, 1, 3) _ = O.pad_rb_multiple_of(_, 32) def stacked_conv(prefix, nr_convs, in_, channel, kernel=(3, 3), padding='SAME', nonlin=O.relu): for i in range(1, nr_convs + 1): in_ = O.conv2d('{}_{}'.format(prefix, i), in_, channel, kernel, padding=padding, nonlin=nonlin) return in_ _ = stacked_conv('conv1', 2, _, 64) _ = O.pooling2d('pool1', _, (2, 2)) _ = stacked_conv('conv2', 2, _, 128) _ = O.pooling2d('pool2', _, (2, 2)) _ = stacked_conv('conv3', 3, _, 256) _ = O.pooling2d('pool3', _, (2, 2)) _ = stacked_conv('conv4', 3, _, 512) _ = O.pooling2d('pool4', _, (2, 2)) _ = stacked_conv('conv5', 3, _, 512) _ = O.pooling2d('pool5', _, (2, 2)) net.add_output(net.find_var_by_name(end + '/bias'), name='end')
def residual(name, x, first=False, inc_dim=False): in_channel = x.static_shape[3] out_channel = in_channel stride = 1 if inc_dim: out_channel = in_channel * 2 stride = 2 with env.variable_scope(name): _ = x if first else O.bn_relu(x) _ = conv_bn_relu('conv1', _, out_channel, stride=stride) _ = conv2d('conv2', _, out_channel) if inc_dim: x = O.pooling2d('pool', x, kernel=2) x = O.pad(x, [[0, 0], [0, 0], [0, 0], [in_channel // 2, in_channel // 2]]) print(name, x.static_shape) _ = _ + x return _