tensorflow 学习(一)- 搭建一个三层的神经网络
一、搭建一个三层的神经网络
定义添加神经层的函数
1.训练的数据
2.定义节点准备接收数据
3.定义神经层:隐藏层和预测层
4.定义 loss 表达式
5.选择 optimizer 使 loss 达到最小
import tensorflow as tf
import numpy as np
# 添加层
def add_layer(inputs, in_size, out_size, activation_function=None):
# add one more layer and return the output of this layer
Weights = tf.Variable(tf.random_normal([in_size, out_size]))
biases = tf.Variable(tf.zeros([1, out_size]) + 0.1)
Wx_plus_b = tf.matmul(inputs, Weights) + biases
if activation_function is None:
outputs = Wx_plus_b
else:
outputs = activation_function(Wx_plus_b)
return outputs
# 1.训练的数据
# Make up some real data
x_data = np.linspace(-1,1,300)[:, np.newaxis]
noise = np.random.normal(0, 0.05, x_data.shape)
y_data = np.square(x_data) - 0.5 + noise
# 2.定义节点准备接收数据
# define placeholder for inputs to network
xs = tf.placeholder(tf.float32, [None, 1]) #None表示样本数量
ys = tf.placeholder(tf.float32, [None, 1])
# 3.定义神经层:隐藏层和预测层
# add hidden layer 输入值是 xs,在隐藏层有 10 个神经元
l1 = add_layer(xs, 1, 10, activation_function=tf.nn.relu)
# add output layer 输入值是隐藏层 l1,在预测层输出 1 个结果
prediction = add_layer(l1, 10, 1, activation_function=None)
# 4.定义 loss 表达式
# the error between prediciton and real data
loss = tf.reduce_mean(tf.reduce_sum(tf.square(ys - prediction),
reduction_indices=[1]))
# 5.选择 optimizer 使 loss 达到最小
# 这一行定义了用什么方式去减少 loss,学习率是 0.1
train_step = tf.train.GradientDescentOptimizer(0.1).minimize(loss)
# important step 对所有变量进行初始化
init = tf.initialize_all_variables()
sess = tf.Session()
# 上面定义的都没有运算,直到 sess.run 才会开始运算
sess.run(init)
# 迭代 1000 次学习,sess.run optimizer
for i in range(1000):
#train_step 和 loss 都是由 placeholder 定义的运算,所以这里要用 feed 传入参数
sess.run(train_step, feed_dict={xs: x_data, ys: y_data})
if i % 50 == 0:
# to see the step improvement
print(sess.run(loss, feed_dict={xs: x_data, ys: y_data}))
二、tensorflow的基本概念:
1.Session会话控制机制,变量激活以及获取结果都需要进行sess.run()
2. 用 tf.Variable 定义变量,与python不同的是,必须先定义它是一个变量,它才是一个变量,初始值为0。
变量必须初始化,init = tf.initialize_all_variables(),用sess.run()激活
3.placeholder
在 tensorflow 中用placeholder 来描述等待输入的节点,只需要指定类型即可,然后在执行节点的时候用一个字典来“喂”这些节点。相当于先把变量 hold 住,然后每次从外部传入data,注意 placeholder 和 feed_dict 是绑定用的。
import tensorflow as tf
input1 = tf.placeholder(tf.float32)
input2 = tf.placeholder(tf.float32)
ouput = tf.mul(input1, input2)
with tf.Session() as sess:
print(sess.run(ouput, feed_dict={input1: [7.], input2: [2.]}))
tensorflow 学习(一)- 搭建一个三层的神经网络相关推荐
- 第五章:Tensorflow 2.0 利用十三层卷积神经网络实现cifar 100训练(理论+实战)
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/LQ_qing/article/deta ...
- 用TensorFlow搭建一个万能的神经网络框架(持续更新)
博客作者:凌逆战 博客地址:https://www.cnblogs.com/LXP-Never/p/12774058.html 文章代码:https://github.com/LXP-Never/bl ...
- Tensorflow学习笔记——搭建神经网络
目录 1.搭建神经网络6步法 2.函数用法和介绍 (1)tf.keras.models.Sequential() (2)Model.compile() (3)model.fit() (4)model. ...
- 采用numpy搭建一个多层的神经网络
版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/u013733326/article/details/79767169 </div>< ...
- 2021-06-14 Socketio学习使用搭建一个聊天室
Socketio搭建一个聊天室 前言 本次实验所用编程语言为HTML以及javascript和JQurey语言和Socketio框架,所用编辑文本工具为VS code. 注意事项 (1)前端编程注意H ...
- TensorFlow学习笔记——(11)循环神经网络
文章目录 一.循环核 二.循环核时间步展开 三.循环计算层 四.TF描述循环计算层 五.循环计算过程 1.RNN实现单个字母预测 (1)过程 (2)完整代码 2.RNN实现输入多个字母,预测一个字母 ...
- 手把手搭建一个【卷积神经网络】
前言 本文介绍卷积神经网络的入门案例,通过搭建和训练一个模型,来对10种常见的物体进行识别分类:使用到CIFAR10数据集,它包含10 类,即:"飞机","汽车" ...
- 使用 Keras搭建一个深度卷积神经网络来识别 c验证码
向AI转型的程序员都关注了这个号
- 【NLP实战】如何基于Tensorflow搭建一个聊天机器人
实战是学习一门技术最好的方式,也是深入了解一门技术唯一的方式.因此,NLP专栏计划推出一个实战专栏,让有兴趣的同学在看文章之余也可以自动动手试一试. 本篇介绍如何基于tensorflow快速搭建一个基 ...
最新文章
- CssSelector之selenium元素定位
- 2018 年,去百度面试 Java 后端的一次面试经历
- 实战ELK(9) Elasticsearch地理位置
- RxJava 和 RxAndroid 五(线程调度)
- html radio 作用域,ionic 表单输入 ion-checkbox ion-radio ion-toggle ion-spinner
- 鲁尼禁赛萨哈一射一传领风骚 曼联客场3-0查尔顿
- 第一百三十七期:一个简单的小案例带你理解MySQL中的事务
- 基于hadoop架构的企业数字化转型,阿里数据中台实战案例
- Mybatis if test 中int判断非空的坑
- 怎样在virtualbox下WIN7共享XP的文件
- LeetCode(447)——回旋镖的数量(JavaScript)
- Fuchsia中GN与Ninja构建demo
- xshell修改字体大小
- WPS 连接 H2 Database
- 金蝶系统怎么清理服务器,“破坏王”教你如何彻底卸载金蝶kis专业版
- 网易云邮箱验证码注册及修改密码
- 不是机器人韩剧所有歌曲_15首超好听经典韩剧OST 《鬼怪》配乐每听必哭
- 使用python基于socket的tcp服务器聊天室
- 给定一个完全循环赛的比赛结果,其中n个队伍两两比赛一次。每场比赛以一方胜出或者平局结束。设计一个算法,把n个队伍排序,序列中每个队伍都不曾输给紧随其后的那个队伍。说明该算法的时间效率类型。
- Socket状态变迁图