1、

tf.multiply(x,y1)      # 对应元素相乘
tf.matmul(x,y2) # 矩阵相乘

2、会话:执行计算图中的节点运算的。

with tf.Session() as sess:

print sess.run(y)

3、参数:就是权重w,用变量表示。随机给初值。

w=tf.Variable(tf.random_normal([2,3],stddev=2,mean=0,seed=1))

正态分布,                                         标准差为2     均值是0

tf.truncated_normal()  去掉过大偏离点的正态分布

4、前向传播:搭建模型,实现推理

输入层,隐藏层,输出层

5、变量初始化、计算图节点运算,都要用会话实现:

变量初始化:

init_op=tf.global_variables_initializer()

sess.run(init_op)

计算图节点运算:在sess.run函数中用feed_dict喂数据

6、用tf.placeholder占位,在sess.run函数中用feed_dict喂数据

喂一组数据:

x=tf.placeholder(tf.float32,shape=(1,2))   多组数据的话,把1改成None

sess.run(y,feed_dict={x:[[0.5,0.6]]})

import tensorflow as tf

x = tf.placeholder(tf.float32,shape=(None,2))
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,feed_dict={x: [[0.7, 0.5],[0.2,0.3],
[0.3,0.4],[0.4,0.5]]}))
print(sess.run(w1))
print(sess.run(w2))

7、反向传播:训练模型参数,在所有参数上用梯度下降,使NN模型在训练数据对上的

损失函数最小。

损失函数(loss):预测值y与已知答案y_的差距

均方误差MSE

loss=tf.reduce_mean(tf.square(y_-y))

反向传播训练方法:以减小loss值为优化目标

学习率 :决定参数每次更新的幅度

import tensorflow as tf
import numpy as np BATCH_SIZE = 8 #一次喂入的数据
seed = 23455 rng = np.random.RandomState(seed)
X=rng.rand(32,2)
Y=[[int(x0 + x1 < 1)] for (x0,x1) in X]
print(X)
print(Y) x = tf.placeholder(tf.float32, shape=(None,2))#体积和重量两个特征
yy= tf.placeholder(tf.float32,shape=(None,1))#只有一个特征,合格或者不合格 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) #定义损失函数及反向传播方法
loss = tf.reduce_mean(tf.square(yy-y))
train_step=tf.train.GradientDescentOptimizer(0.001).minimize(loss)#学习率为0.001 with tf.Session() as sess:
init_op=tf.global_variables_initializer()
sess.run(init_op)
print(sess.run(w1))
print(sess.run(w2)) #训练模型
STEPS=3000#训练三千轮
for i in range(STEPS):
start = (i*BATCH_SIZE)%32
end = start+BATCH_SIZE
sess.run(train_step, feed_dict={x: X[start:end],yy: Y[start: end]})
if i % 500 == 0: #每500轮打印一次loss值
total_loss = sess.run(loss,feed_dict={x: X, yy: Y})
print(i,total_loss)
print(sess.run(w1))
print(sess.run(w2))

8、搭建神经网络的八股:准备、前传、反传、迭代

(1)准备:import ;常量定义;生成数据集

(2)前向传播:定义输入、参数和输出

(3)反向传播:定义损失函数,反向传播方法

loss =       train_step =

(4)生成会话,训练STEPS轮

9、损失函数

NN复杂度:多用NN层数和NN参数的个数表示

层数=隐藏层的层数+1个输出层

总参数=总w+总b

自定义损失函数:

交叉熵:表征两个概率分布之间的距离

10、学习率:每次参数更新的幅度

学习率设置多少合适?指数衰减率

11、滑动平均(影子值)

记录了每个参数一段时间内过往值得平均,增加了模型的泛化性。

针对所有参数:w、b

tensorflow笔记(北大网课实战)的更多相关文章

  1. tensorflow笔记2(北大网课实战)

    1.正则化缓解过拟合 正则化在损失函数中引入模型复杂度指标,利用给w加权值,弱化了训练数据的噪声 一般不会正则化b. 2.matplotlib.pyplot 3.搭建模块化的神经网络八股: 前向传播就 ...

  2. 对于coursera上三门北大网课的评测

    今年暑假开始就选了coursera上三门北大的网课——C++程序设计.算法基础.数据结构基础,它们属于一个项目的,上的话每个月249块钱,项目里包括这三门一共有七门课.因为一开始是三门课同时上的,数据 ...

  3. CoolBlog开发笔记第2课:搭建开发环境

    教程目录 1.1 CoolBlog开发笔记第1课:项目分析 前言 今天是CoolBlog开发笔记的第2课,我们将要讲解的是开发环境的搭建.俗话说"工欲善其事必先利其器",Djang ...

  4. CoolBlog开发笔记第3课:创建Django应用

    教程目录 1.1 CoolBlog开发笔记第1课:项目分析 1.2 CoolBlog开发笔记第2课:搭建开发环境 前言 经过上一节我们已经创建了CoolBlog工程,但是关于CoolBlog的功能代码 ...

  5. CoolBlog开发笔记第4课:数据库模型设计

    教程目录 1.1 CoolBlog开发笔记第1课:项目分析 1.2 CoolBlog开发笔记第2课:搭建开发环境 1.3 CoolBlog开发笔记第3课:创建Django应用 前言 我新书<Py ...

  6. CoolBlog开发笔记第5课:请求与响应

    教程目录 1.1 CoolBlog开发笔记第1课:项目分析 1.2 CoolBlog开发笔记第2课:搭建开发环境 1.3 CoolBlog开发笔记第3课:创建Django应用 1.4 CoolBlog ...

  7. 手把手教你写电商爬虫-第三课 实战尚妆网AJAX请求处理和内容提取

    版权声明:本文为博主原创文章,未经博主允许不得转载. 系列教程: 手把手教你写电商爬虫-第一课 找个软柿子捏捏 手把手教你写电商爬虫-第二课 实战尚妆网分页商品采集爬虫 看完两篇,相信大家已经从开始的 ...

  8. tensorflow笔记(一)之基础知识

    tensorflow笔记(一)之基础知识 版权声明:本文为博主原创文章,转载请指明转载地址 http://www.cnblogs.com/fydeblog/p/7399701.html 前言 这篇no ...

  9. tensorflow笔记(二)之构造一个简单的神经网络

    tensorflow笔记(二)之构造一个简单的神经网络 版权声明:本文为博主原创文章,转载请指明转载地址 http://www.cnblogs.com/fydeblog/p/7425200.html ...

随机推荐

  1. 十七、React路由嵌套:头部导航+侧边导航

    一.概述 实现功能:点首页,展示首页,同时在左侧有个首页的各个栏目导航:点用户,同首页: 二.代码实现 1. src/App.js import React from 'react'; import ...

  2. TS-Lint 安装方法

    1  在 Visual Studio Extensions  里下载 TSLint  2  在项目根目录下放 tslint.json 文件 (里面的规则定死就好 我认为没有特别大的意义)

  3. pandas中na_values与keep_default_na

    我们在使用pandas读取文件时,常会遇到某个字段为NaN. 一般情况下,这时因为文件中包含空值导致的,因为pandas默认会将 '-1.#IND', '1.#QNAN', '1.#IND', '-1 ...

  4. Python 自动登录哔哩哔哩(2captcha打码平台)

    前言 研究爬虫的各位小伙伴都知道,需要登录才能获取信息的网站,是比较难爬的,原因就是在于,现在各大网站为了反爬,都加入了图片验证码,滑动验证码之类的干扰 本篇就针对哔哩哔哩的滑动验证码进行讲解和破解 ...

  5. 女神说不能每张照片P的一样,所以朋友圈开三天可见,用Python一步解决

    大家好,我是小三十三,一个刚恰完午饭,正在用刷网页浪费生命的蒟蒻... 一堆堆无聊八卦信息的网页内容慢慢使我的双眼模糊,一个哈欠打出了三斤老泪,就在此时我看到了一张图片: ! 是谁!是谁把我女朋友的照 ...

  6. qt 中使用 c 语言文件

    qt 中直接使用 c 语言文件,c 文件可以直接包含,h 文件包含的时候,需要在 c++ 中添加额外信息,如下: #ifdef __cplusplus extern "C" { # ...

  7. spring源码 AutowireCapableBeanFactory接口

    对于想要拥有自动装配能力,并且想把这种能力暴露给外部引用的BeanFactory类需要实现此接口.正常情况下,不要使用此接口应该更倾向于使用BeanFactory或者ListableBeanFacto ...

  8. Django配置日志

    在settings里配置 # 日志配置 LOGGING = { # 是python的版本 'version': 1, # 是否禁用 'disable_existing_loggers': False, ...

  9. ArryList的使用方法(基础使用-将来会不断添加)

    转自:http://www.cnblogs.com/ysz12300/p/5595907.html 引入ArryList的方法->命名空间:using System.Collections; A ...

  10. HDU - 4405 Aeroplane chess(期望dp)

    题意:沿着x轴从0走到大于等于N的某处,每一步的步数由骰子(1,2,3,4,5,6)决定,若恰好走到x轴上某飞行路线的起点,则不计入扔骰子数.问从0走到大于等于N的某处的期望的扔骰子次数. 分析: 1 ...