Advertisement
Guest User

Adel

a guest
Mar 19th, 2019
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.47 KB | None | 0 0
  1. import tensorflow as tf
  2. import numpy as np
  3.  
  4. from functools import partial
  5.  
  6. def get_kaminet(inputs, training, n_outputs, reuse):
  7.     with tf.variable_scope("kaminet", reuse=reuse):
  8.         scale = 0.001
  9.         he_init = tf.contrib.layers.variance_scaling_initializer()
  10.         my_conv = partial(tf.layers.conv2d, activation=tf.nn.relu, kernel_regularizer=tf.contrib.layers.l1_regularizer(scale), kernel_initializer=he_init)
  11.         my_dense = partial(tf.layers.dense, activation=tf.nn.relu, kernel_regularizer=tf.contrib.layers.l1_regularizer(scale), kernel_initializer=he_init)
  12.  
  13.         conv1 = my_conv(inputs, filters=16, kernel_size=4, strides=(1, 1), padding="SAME", name="conv1")
  14.         max_pool2 = tf.layers.max_pooling2d(conv1, pool_size=(3, 3), strides=(2, 2), padding="SAME", name="max_pool2") # 100x100
  15.         norm3 = tf.nn.local_response_normalization(max_pool2, depth_radius=2, bias=1, alpha=0.00002, beta=0.75, name="norm3")
  16.         conv4 = my_conv(norm3, filters=32, kernel_size=1, strides=(1, 1), padding="SAME", name="conv4")
  17.         conv5 = my_conv(conv4, filters=32, kernel_size=3, strides=(2, 2), padding="SAME", name="conv5")
  18.         norm6 = tf.nn.local_response_normalization(conv5, depth_radius=2, bias=1, alpha=0.00002, beta=0.75, name="norm6")
  19.         max_pool7 = tf.layers.max_pooling2d(norm6, pool_size=(3, 3), strides=(2, 2), padding="SAME", name="max_pool7") # 25x25
  20.         conv8 = my_conv(max_pool7, filters=64, kernel_size=1, strides=(1, 1), padding="SAME", name="conv8")
  21.         conv9 = my_conv(conv8, filters=54, kernel_size=3, strides=(2, 2), padding="SAME", name="conv9")
  22.         conv10 = my_conv(conv9, filters=128, kernel_size=3, strides=(2, 2), padding="SAME", name="conv10")
  23.         mean_pool11 = tf.layers.average_pooling2d(conv10, pool_size=(3, 3), strides=(1, 1), padding="VALID", name="mean_pool11")
  24.         shape = mean_pool11.shape
  25.         mean_pool11_flat = tf.reshape(mean_pool11, shape=(-1, shape[1] * shape[2] * shape[3]), name="mean_pool11_flat")
  26.         mean_pool11_flat_drop = tf.layers.dropout(mean_pool11_flat, rate=0.4, training=training, name="mean_pool11_flat_drop")
  27.         dense12 = my_dense(mean_pool11_flat_drop, 1000, name="dense12")
  28.         dense12_drop = tf.layers.dropout(dense12, rate=0.4, training=training, name="dense12_drop")
  29.         dense13 = my_dense(dense12_drop, 200, name="dense13")
  30.         dense14 = my_dense(dense13, 50, name="dense14")
  31.         logits = tf.layers.dense(dense14, n_outputs, name="logits")
  32.     return logits
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement