def build_model(self): with tf.device("/cpu:0"): with tf.variable_scope(self.scope): self.build_graph() self.all_variables = tf.trainable_variables(scope=self.scope) self._getflat = U.GetFlat(self.all_variables) self.placeholders = [ tf.placeholder(v.value().dtype, v.get_shape().as_list()) for v in self.all_variables ] self.sess = tf.InteractiveSession() if tf.get_default_session( ) == None else tf.get_default_session() self.sess.run(tf.global_variables_initializer()) self.vars, self.assigns = self.init_attr() self.saver = tf.train.Saver()
def __init__(self, *args, **kwargs): self.args, self.kwargs = args, kwargs self.scope = self._initialize(*args, **kwargs) self.all_variables = tf.get_collection(tf.GraphKeys.VARIABLES, self.scope.name) self.trainable_variables = tf.get_collection(tf.GraphKeys.TRAINABLE_VARIABLES, self.scope.name) self.num_params = sum(int(np.prod(v.get_shape().as_list())) for v in self.trainable_variables) self._setfromflat = U.SetFromFlat(self.trainable_variables) self._getflat = U.GetFlat(self.trainable_variables) logger.info('Trainable variables ({} parameters)'.format(self.num_params)) for v in self.trainable_variables: shp = v.get_shape().as_list() logger.info('- {} shape:{} size:{}'.format(v.name, shp, np.prod(shp))) logger.info('All variables') for v in self.all_variables: shp = v.get_shape().as_list() logger.info('- {} shape:{} size:{}'.format(v.name, shp, np.prod(shp))) placeholders = [tf.placeholder(v.value().dtype, v.get_shape().as_list()) for v in self.all_variables] self.set_all_vars = U.function( inputs=placeholders, outputs=[], updates=[tf.group(*[v.assign(p) for v, p in zip(self.all_variables, placeholders)])] )
def __init__(self, var_list, beta1=0.9, beta2=0.999, epsilon=1e-08): self.var_list = var_list self.beta1 = beta1 self.beta2 = beta2 self.epsilon = epsilon # self.scale_grad_by_procs = scale_grad_by_procs size = sum(U.numel(v) for v in var_list) self.m = np.zeros(size, 'float32') self.v = np.zeros(size, 'float32') self.t = 0 self.setfromflat = U.SetFromFlat(var_list) self.getflat = U.GetFlat(var_list)
def __init__(self, var_list, *, beta1=0.9, beta2=0.999, epsilon=1e-08, scale_grad_by_procs=True, comm=None): self.var_list = var_list self.beta1 = beta1 self.beta2 = beta2 self.epsilon = epsilon self.scale_grad_by_procs = scale_grad_by_procs size = sum(U.numel(v) for v in var_list) self.m = np.zeros(size, 'float32') self.v = np.zeros(size, 'float32') self.t = 0 self.setfromflat = U.SetFromFlat(var_list) self.getflat = U.GetFlat(var_list) self.comm = MPI.COMM_WORLD if comm is None else comm