def __init__(self, dim_in, dim_hidden, learning_rate, gate=Relu(),
initializer=tf.random_normal_initializer(), optimizer=None, name='BP'):
dim_out = 1
if optimizer is None:
optimizer = tf.train.GradientDescentOptimizer(learning_rate)
self.x = tf.placeholder(tf.float32, shape=(None, dim_in))
self.target = tf.placeholder(tf.float32, shape=(None, dim_out))
U, __, ___, phi = \
fully_connected(name, 'fully_connected_layer1', self.x, dim_in, dim_hidden, initializer, gate.gate_fun)
W, __, ___, y = \
fully_connected(name, 'fully_connected_layer2', phi, dim_hidden, dim_out, initializer, tf.identity)
self.loss = tf.scalar_mul(0.5, tf.reduce_mean(tf.squared_difference(y, self.target)))
self.all_gradients = optimizer.compute_gradients(self.loss)
self.train_op = optimizer.apply_gradients(self.all_gradients)
self.outgoing_weight = W
self.feature_matrix = U
评论列表
文章目录