深度学习中Hyperparameters的选取过程

最近正在利用深度学习网络进行人脸识别,涉及到网络的Hyperparameters的选取,过程中遇到了很多问题,整理汇总起来以便日后避坑。配置环境为Ubuntu+tensorflow_gpu+python3.6

整个选取流程如下:随机生成一组某区间范围内的学习率,对每个学习率利用10折交叉验证法,求得在训练少量epoch之后模型在验证集上的平均准确率,最后选取使平均准确率最大的学习率。

1. 困扰最久的问题是如何重新初始化Graph中的每个trainable_variables。因为在每个fold开始时,需要对整个网络重新训练,即要求各trainable_variables重新初始化。这里最简单的方法就是在每个需要重新初始化trainable_variables之前,再次调用sess.run(tf.global_varibles_initializer())即可,代码如下:

import tensorflow as tf
import numpy as np

x = tf.placeholder(tf.float32, shape=(1,3), name='x')
w = tf.get_variable('w', shape=(3,1), initializer=tf.contrib.layers.xavier_initializer(seed=0))

y = tf.matmul(x, w)
loss = (y - 0.3) ** 2

train_op = tf.train.GradientDescentOptimizer(0.01).minimize(loss)

with tf.Session() as sess:
    sess.run(tf.global_variables_initializer())
    print
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值