美文网首页
2019-02-13:超参数调优

2019-02-13:超参数调优

作者: AI_Finance | 来源:发表于2019-02-13 17:26 被阅读0次

    import numpyas np

    import tensorflowas tf

    from hyperoptimport fmin, tpe, hp

    def data_generator():

    while True:

    a1 = np.random.rand(10, 2)

    factors = np.array([[2], [3]])

    yield a1, np.matrix(a1)*np.matrix(factors)

    dg = data_generator()

    class function_fitness(object):

    def __init__(self, sess, learning_rate=1e-2):

    self.sess = sess

    self.learn_rate = learning_rate

    self.build_placeholder()

    def build_placeholder(self):

    self.input_x = tf.placeholder(dtype=tf.float32, shape=[10, 2], name="input_x")

    self.input_y = tf.placeholder(dtype=tf.float32, shape=[10, 1], name="input_y")

    self.y_hat = tf.layers.dense(inputs=self.input_x, units=2,

                                        kernel_initializer=tf.truncated_normal_initializer(),

                                        bias_initializer=tf.truncated_normal_initializer())

    self.loss = tf.reduce_mean(input_tensor=tf.square(x=self.input_y -self.y_hat))

    self.train_op = tf.train.AdamOptimizer(learning_rate=self.learn_rate).minimize(loss=self.loss)

    def train(self, learning_rate):

    self.learn_rate = learning_rate

    x, y = dg.__next__()

    _, self.loss_ =self.sess.run(fetches=[self.train_op, self.loss], feed_dict={self.input_x: x, self.input_y: y})

    print(self.loss_, "\t", self.learn_rate)

    return self.loss_

    with tf.Session()as sess:

    ff = function_fitness(sess=sess)

    sess.run(tf.global_variables_initializer())

    best = fmin(fn=ff.train, space=hp.uniform('learning_rate', 0, 1),

                    algo=tpe.suggest,

                    max_evals=8000)

    print(best)

    相关文章

      网友评论

          本文标题:2019-02-13:超参数调优

          本文链接:https://www.haomeiwen.com/subject/aqwdeqtx.html