def _create_fully_connected(self, prev_layer, num_neurones, layer_name, save_vars=False):
with tf.variable_scope(layer_name) as scope:
try:
b, x, y, z = prev_layer.get_shape().as_list()
flat_size = x*y*z
except:
flat_size = prev_layer.get_shape().as_list()[1]
flat = tf.reshape(prev_layer,shape=[-1,flat_size])
w = tf.get_variable(name="weights",shape=[flat_size,num_neurones],initializer=tf.contrib.layers.xavier_initializer())
b = tf.get_variable(name="biases",shape=[num_neurones],initializer=tf.random_normal_initializer())
out = tf.matmul(flat,w) + b
full = tf.nn.relu(out)
if save_vars:
self.var_list += [w, b]
return full
评论列表
文章目录