You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

52 lines
1.6 KiB

import tensorflow as tf
import yaml
def init_weights(shape, name):
return tf.get_variable(name, shape=shape, initializer=tf.contrib.layers.xavier_initializer())
def init_biases(shape):
return tf.Variable(tf.zeros(shape))
def threshold(x, val=0.5):
x = tf.clip_by_value(x, 0.5, 0.5001) - 0.5
x = tf.minimum(x * 10000, 1)
return x
def lrelu(x, leak=0.2, name=None):
return tf.maximum(x, leak * x, name=name)
def make_var(name, shape=None, initializer=None, trainable=True):
if shape is not None:
return tf.get_variable(name, shape, initializer=initializer, trainable=trainable)
else:
return tf.get_variable(name, initializer=initializer, trainable=trainable)
def exp_average_summary(ops, dep_ops, decay=0.9, name='avg', scope_pfix='', raw_pfix=' (raw)', avg_pfix=' (avg)'):
averages = tf.train.ExponentialMovingAverage(decay, name=name)
averages_op = averages.apply(ops)
for op in ops:
tf.summary.scalar(scope_pfix + op.name + raw_pfix, op)
tf.summary.scalar(scope_pfix + op.name + avg_pfix, averages.average(op))
with tf.control_dependencies([averages_op]):
for i, dep_op in enumerate(dep_ops):
dep_ops[i] = tf.identity(dep_op, name=dep_op.name.split(':')[0])
return dep_ops
def load_from_yml(file_path):
with open(file_path, 'r') as loadfile:
y = yaml.load(loadfile)
return y
def write_to_yml(data_dict, file_path):
with open(file_path, 'w') as outfile:
data_dict = dict(data_dict)
yaml.dump(data_dict, outfile, default_flow_style=False)