Tensorflow实战Google-第三章-简单神经网络
2017-10-03 17:27
591 查看
# 神经网络实现二分类问题tensorflow import tensorflow as tf from numpy.random import RandomState # 定义一个batch的大小 batch_size = 8 # 定义初始化权重参数,stddev标准偏差,seed随机种子 # w1和w2分别表示第一列和第二列权重参数;这里的输入为2个参数x1+x2;隐藏层只有一层,有3个节点; # 输出层只有一个节点;所以2-w1-3-w2-1::输入层-隐藏层-输出层 # random_normal表示随机生成矩阵,参数mean表示均值,不写默认为0,stddev表示标准差, # seed表示选定一个初始态,以后每次运行时产生的随机数是一样的 w1 = tf.Variable(tf.random_normal([2,3],stddev=1,seed=1)) w2 = tf.Variable(tf.random_normal([3,1],stddev=1,seed=1)) # 输入输出(训练数据样本:x分别为输入特征,y_为对应的正确结果) # placeholder用于暂时存储数据,第一个参数表示类型,第二个shape表示矩阵形式, # (m,n)表示m*n,这里的None表示输入样本数量不确定,2表示特征值为2个,即x1+x2 x = tf.placeholder(tf.float32,shape=(None,2),name='x-input') y_ = tf.placeholder(tf.float32,shape=(None,1),name='y-input') # 传播过程,matmul为矩阵相乘,传播方向:x->a->y a = tf.matmul(x,w1) y = tf.matmul(a,w2) # 定义损失函数和反向传播算法 # 学习率为0.001 cross_entropy = -tf.reduce_mean(y_*tf.log(tf.clip_by_value(y,1e-10,1.0))) train_step = tf.train.AdamOptimizer(0.001).minimize(cross_entropy) # 随机生成测试数据集 # RandomState(1),这里的1表示随机种子,表示固定,每次都不变, # rdm = RandomState(i)就会变化 # 这里表示X为128*2; rdm = RandomState(1) dataset_size = 128 X = rdm.rand(dataset_size,2) # 定义xi+x2<1时,y=1,为正样本;否则为负样本0 # Y= 0/1 Y = [[int(x1+x2 < 1)] for (x1 , x2) in X] # 创建一个会话 with tf.Session() as sess: # 初始化相关变量 init_op = tf.initialize_all_variables() sess.run(init_op) print(sess.run(w1)) print(sess.run(w2)) # 定义训练的轮数 STEPS = 5000 for i in range(STEPS): # 每次选取一个batch_size个样本,即8;进行训练 start = (i*batch_size)%dataset_size end = min(start+batch_size,dataset_size) # 更新权重 sess.run(train_step,feed_dict={x:X[start:end], y_:Y[start:end]}) # 每训练1000次,就计算一次在所有数据上的交叉熵输出,便于观察 if i%1000 == 0: total_cross_entropy = sess.run(cross_entropy,feed_dict = {x:X,y_:Y}) print("After %d training step(s),cross entropy on all data is %g"% (i,total_cross_entropy)) print(sess.run(w1)) print(sess.run(w2))
相关文章推荐
- TensorFlow:实战Google深度学习框架(二)实现简单神经网络
- [action] deep learning 深度学习 tensorflow 实战(2) 实现简单神经网络以及随机梯度下降算法S.G.D
- (尤其是训练集验证集的生成)深度学习 tensorflow 实战(2) 实现简单神经网络以及随机梯度下降算法S.G.D
- Tensorflow实战1:最简单神经网络实现
- tensorflow复现google的inception v3神经网络
- RNN循环神经网络的直观理解:基于TensorFlow的简单RNN例子
- TensorFlow技术解析与实战 6 神经网络的发展及其 TensorFlow 实现
- Tensorflow简单神经网络解决Kaggle比赛Titanic问题
- tensorflow学习笔记二——建立一个简单的神经网络拟合二次函数
- 【懒懒的Tensorflow学习笔记三之搭建简单的神经网络模型】
- 利用tensorflow构造一个简单的神经网络
- tensorflow笔记(二)之构造一个简单的神经网络
- tensorflow学习笔记四:mnist实例--用简单的神经网络来训练和测试
- Tensorflow实战-8循环神经网络RNN
- Tensorflow实战学习(十一)【多层神经网络】
- 利用tensorflow 一步一步实现一个简单神经网络,线性回归
- tensorflow56 《TensorFlow技术解析与实战》06 神经网络的发展及其Tensorflow实现
- 利用tensorflow建立简单的神经网络
- Tensorflow自我训练进阶(代码+注解)【2】第一个神经网络--简单感知器处理MNIST
- 【TensorFlow实战】2.完整神经网络例子