RL进阶 | TensorFlow熟悉

2019-04-12  本文已影响0人  臻甄
image.png

一个简单的小栗子

# -*- coding: utf-8 -*-
import tensorflow as tf
import numpy as np

# 创建训练数据
x_data = np.random.rand(100).astype(np.float32) # 随机生成100个数,且用TensorFlow里常用的数据类型
y_data = x_data*0.1 + 0.3

# 搭建模型,用 tf.Variable 来创建描述 y 的参数
Weights = tf.Variable(tf.random_uniform([1], -1.0, 1.0))
biases = tf.Variable(tf.zeros([1]))
y = Weights*x_data + biases


loss = tf.reduce_mean(tf.square(y-y_data)) # 计算误差
optimizer = tf.train.GradientDescentOptimizer(0.5) # 使用「梯度下降法」反向传递误差给optimizer
train = optimizer.minimize(loss) # 然后交给optimizer去优化

init = tf.global_variables_initializer() # 初始化神经网络结构里所有定义的变量
sess = tf.Session() # 创建session
sess.run(init)      # 初始化session,Very important

for step in range(201):
    sess.run(train) # 开启训练
    if step % 20 == 0: # 每隔20次打印一次日志
        print(step, sess.run(Weights), sess.run(biases))
        # 用session来执行每一次数据的训练,可以把session看做是记录进会话的一个指针,指到哪里就执行哪里

tensorflow 1.6/1.5和CUDA 9.0对应,1.4/1.3和CUDA 8.0对应

用conda安装cuda8和cudnn6,参考《文章

//先添加conda国内镜像
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
conda config --set show_channel_urls yes

//安装cuda
conda install cudatoolkit=8.0 -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/linux-64/
//安装cudnn
conda install cudnn=6.0.0 -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/linux-64/

调参感想

batch_size

隐藏层数量

参数初始化方式

权值和偏置值,用正态分布

激活函数

交叉熵
二次

loss的优化方式

optimizer = tf.train.GradientDescentOptimizer(0.5)

训练次数

有时候收敛速度比较慢,就需要加大训练次数才能到比较好的准确率

上一篇下一篇

猜你喜欢

热点阅读