人工智能从入门到精通(3)

第三天

tensorflow实现神经网络

tensorflow游乐场及神经网络简介

http://playground.tensorflow.org tensorflow游乐场网站
前向传播算法的学习
tf.matmul实现了矩阵乘法的功能

import tensorflow as tf
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=tf.constant([[0.7,0.9]])
#前向传播算法获得神经网络的输出
a=tf.matmul(x,w1)
y=tf.matmul(a,w2)

sess=tf.Session()
sess.run(w1.initializer)
sess.run(w2.initializer)

print(sess.run(y))
sess.close()

解析:

tf.random_normal([2,3],stddev=1)会产生一个2*3的矩阵,矩阵的标准差为1,均值为0的随机数。均值可以通过mean来设置,默认为0

反向传播就是一个迭代的过程,先根据前向传播算法得出的值和正确答案的距离。基于这个距离,反向传播会相应更新神经网络参数的取值,使得最后预测结果与答案更加接近
tensorflow提供了placeholder机制用于提供输入数据
tf.initialize_all_variables()初始化所有参数

程序优化如下:

import tensorflow as tf
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=tf.placeholder(tf.float32,shape=(1,2),name="input")

a=tf.matmul(x,w1)
y=tf.matmul(a,w2)

sess=tf.Session()
init_op=tf.initialize_all_variables()
sess.run(init_op)

print(sess.run(y,feed_dict={x:[[0.7,0.9]]}))
sess.close()

训练神经网络的三个步骤

  1. 定义神经网络的结构和前向传播的输出结果
  2. 定义损失函数以及选择反向传播优化的算法
  3. 生成会话并且在训练数据上反复运行反向传播优化算法
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值