tensorflow学习笔记(1)-基本语法和前向传播
tensorflow学习笔记(1)
(1)tf中的图
图中就是一个计算图,一个计算过程。 图中的constant是个常量
计算图只描述过程,不执行。
(2)tf中的会话
那么怎么计算呢?
tensorflow有个会话是专门用来计算的
import tensorflow as tf
x=tf.constant([[1.0,2.0]])
w=tf.constant([[3.0],[4.0]]) y=tf.matmul(x,w) print(y) with tf.Session() as sess:
print(sess.run(y))
这里定义了个矩阵相乘的运算,并用会话结构 with tf.session() as sess:计算
打印结果为 1*3+2*4=11没毛病
(3)tf中的变量
tf中遍历就是神经元上的参数或者说是权重w,我们要改变的就是这个参数。
seed是随机数种子,不加的话每次生成的都不一样
除了正太分布tf还提供均匀分布,还有零矩阵和1矩阵的初始化,还有填充矩阵和constant矩阵的初始化方法
变量的初始化:在sess.run()中使用tf.global_variablies_initializer()
如
init_op=tf.global_varibles_initializer()
sess.run(init_op)
(4)tf.placeholder
这是个占位的作用,可以理解为申明定义变量
如x=tf.placeholder(tf.float32,shape=(1,2))这是声明
然后喂入一组数据
sess.run(y,feed_dict={x:[[0.5,0.6]]})
喂入多组数据
x=tf.placeholder(tf.float32,shape=(None,2))#none表示不限样本数
sess.run(y,feed_dict={x:[[0.1,0.2],[0.2,0.3],[0.4,0.5]]})
(5)神经网络四部曲
1.准备数据和提取特征值输入神经网络
2.搭建NN结构,先搭建图然后运算(前向传播)(计算输出)
3.大量数据喂入NN,迭代优化参数(权重和偏置)(NN反向传播算法)
4.用训练好的模型分类预测
(5)这里实现一个简单2层网络模型
# -*- coding: utf-8 -*-
import tensorflow as tf
#两层神经网络(全连接过程) #初始化特征值和参数
x=tf.constant([[0.7,0.5]])
w1=tf.Variable(tf.random_normal([2,3],stddev=1,seed=1))
w2=tf.Variable(tf.random_normal([3,1],stddev=1,seed=1)) #定义前向传播过程
a=tf.matmul(x,w1)
y=tf.matmul(a,w2) #用会话计算结果
with tf.Session() as sess:
init_op=tf.global_variables_initializer()
sess.run(init_op)
print(sess.run(y))
运行结果如下
这是喂入多组数据的方法
这里的特征值我们已经固定,我们也可以先用placeholdr占位,然后再sess.run()里面喂入feed_dict={xxx}
最新文章
- CSS之viewport 2
- [Tip] 如何在BeyondCompare中忽略不重要的区别.
- sql字符串函数(转)
- 基础算法(搜索):NOIP 2015 斗地主
- 哈希(3) java中的hashcode
- 简单的拖动手势控制侧拉view显示
- tomcat异常
- BZOJ 1037 [ZJOI2008]生日聚会Party(单调DP)
- android 播放assets文件里视频文件的问题
- uiautomator+cucumber实现自动化测试
- BigDecimal 在for循环中相加注意事项
- C# [LINQ] Linq Expression 获取多格式文件
- poj2226 Muddy Fields 填充棒子(二分匹配)
- Android:(本地、可通信的、前台、远程)Service使用全面介绍
- Python——pandas数据处理(python programming)
- JS设置状态栏
- ip netns
- JUC-闭锁:CountDownLatch
- 利用xpath来解析douban电影相对应的信息
- 使用lock锁或Monitor.Enter的目的