认识tensorflow - 【老鱼学tensorflow2】
深度学习是模仿了生物的神经元的概念,你可以想象用一大堆的神经元通过各种刺激来对外部世界进行感知,从而建立起对外部世界的模型。
比如给你一个数据对:
| x | y |
|---|---|
| -1 | -3 |
| 0 | -1 |
| 1 | 1 |
| 2 | 3 |
| 3 | 5 |
| 4 | 7 |
我们可以使用深度学习通过从数据中学习来了解其中的规律,类似人类的学习,从我们的感知和实践中认识世界。
我们从直观的方式来看一下这些数据具有什么规律。
import numpy as np
import matplotlib.pyplot as plt
xs = np.array([-1.0, 0, 1, 2, 3, 4], dtype=float)
ys = np.array([-3, -1, 1, 3, 5, 7], dtype=float)
plt.plot(xs, ys)
plt.show()
显示的图形为:

从肉眼上看直观的感觉是线性关系,我们用深度学习来训练一下模型(假设我们不知道这个数据的规律的情况下)
import tensorflow as tf
import numpy as np
import tensorflow.keras as keras
xs = np.array([-1.0, 0, 1, 2, 3, 4], dtype=float)
ys = np.array([-3, -1, 1, 3, 5, 7], dtype=float)
model = keras.models.Sequential([
keras.layers.Dense(units=1, input_shape=[1])
])
model.compile(optimizer='sgd', loss='mean_squared_error')
model.fit(xs, ys, epochs=500)
print(model.predict([10.0]))
关于深度学习的代码不多,我们一个一个来稍微简单介绍一下。
model = keras.models.Sequential([
...
])
keras.models.Sequential() :建立了一个顺序堆叠的模型,就像乐高积木一样,这是一个一层一层顺序堆叠起来的模型,其它估计还有分支一样的模型。
在这个顺序堆叠的模型中,其中首先加入了一个层(你可以理解为一块乐高积木)为:keras.layers.Dense ,这是一个全连接层,也就是其神经元前面和后面全连接,就像我们大脑中的一个皮层,你可以想象成前面有很多插口线,后面也有很多输出线。而这里我们只定义了一个输入只有一个插口(输入参数为一维),输出也只有一个输出线(输出为一个数值)。
为何输入只有一维、输出也只有一维呢?
那是因为我们的数据中输入只有一维的x,输出也只有一维的y。
在定义好了模型后,可以对这个模型进行编译了,编译也很简单,只要调用model.compile()函数就可以,不过这里需要指定两个参数,这是本程序中相对比较难理解的部分。
首先指定了一个损失函数loss,损失函数用来确地我们是否学习到了,也就是我们要有一个评判我们是否学到了东西的函数,在深度学习中用损失函数来定义,比如这里用mean_squared_error来定义,也就是均方差,让神经网络的输出值尽量地同期望的输出值接近。
另一个参数是优化器optimizer。这里使用sgd优化算法,优化器本身就是一个函数,其目的是通过优化算法让损失值尽量地减少。
keras中有多种优化器,这里使用梯度下降算法来进行优化。
最后通过model.fit(xs, ys, epochs=500)来进行训练,训练的迭代次数用500次。
当模型训练完成后,我们就可以用此模型来进行model.predict([10.0])预测。
通过这样简单的一小段代码就实现了一个深度学习的程序。
认识tensorflow - 【老鱼学tensorflow2】的更多相关文章
- 二分类问题续 - 【老鱼学tensorflow2】
前面我们针对电影评论编写了二分类问题的解决方案. 这里对前面的这个方案进行一些改进. 分批训练 model.fit(x_train, y_train, epochs=20, batch_size=51 ...
- 二分类问题 - 【老鱼学tensorflow2】
什么是二分类问题? 二分类问题就是最终的结果只有好或坏这样的一个输出. 比如,这是好的,那是坏的.这个就是二分类的问题. 我们以一个电影评论作为例子来进行.我们对某部电影评论的文字内容为好评和差评. ...
- tensorflow卷积神经网络-【老鱼学tensorflow】
前面我们曾有篇文章中提到过关于用tensorflow训练手写2828像素点的数字的识别,在那篇文章中我们把手写数字图像直接碾压成了一个784列的数据进行识别,但实际上,这个图像是2828长宽结构的,我 ...
- numpy有什么用【老鱼学numpy】
老鱼为了跟上时代潮流,也开始入门人工智能.机器学习了,瞬时觉得自己有点高大上了:). 从机器学习的实用系列出发,我们会以numpy => pandas => scikit-learn =& ...
- 为何学习matplotlib-【老鱼学matplotlib】
这次老鱼开始学习matplotlib了. 在上个pandas最后一篇博文中,我们已经看到了用matplotlib进行绘图的功能,这次更加系统性地学习一下关于matplotlib的功能. matlab由 ...
- tensorflow RNN循环神经网络 (分类例子)-【老鱼学tensorflow】
之前我们学习过用CNN(卷积神经网络)来识别手写字,在CNN中是把图片看成了二维矩阵,然后在二维矩阵中堆叠高度值来进行识别. 而在RNN中增添了时间的维度,因为我们会发现有些图片或者语言或语音等会在时 ...
- tensorflow保存读取-【老鱼学tensorflow】
当我们对模型进行了训练后,就需要把模型保存起来,便于在预测时直接用已经训练好的模型进行预测. 保存模型的权重和偏置值 假设我们已经训练好了模型,其中有关于weights和biases的值,例如: im ...
- tensorflow用dropout解决over fitting-【老鱼学tensorflow】
在机器学习中可能会存在过拟合的问题,表现为在训练集上表现很好,但在测试集中表现不如训练集中的那么好. 图中黑色曲线是正常模型,绿色曲线就是overfitting模型.尽管绿色曲线很精确的区分了所有的训 ...
- tensorflow分类-【老鱼学tensorflow】
前面我们学习过回归问题,比如对于房价的预测,因为其预测值是个连续的值,因此属于回归问题. 但还有一类问题属于分类的问题,比如我们根据一张图片来辨别它是一只猫还是一只狗.某篇文章的内容是属于体育新闻还是 ...
- tensorflow Tensorboard2-【老鱼学tensorflow】
前面我们用Tensorboard显示了tensorflow的程序结构,本节主要用Tensorboard显示各个参数值的变化以及损失函数的值的变化. 这里的核心函数有: histogram 例如: tf ...
随机推荐
- 如何下载RTMP/http直播源直播视频(比尔下载器使用完整教程)
之前已经介绍了如何抓取各种app直播源及在线视频地址,本节内容将详细介绍如何下载rtmp/http直播源的直播视频,请注意,rtmp/http指协议,不针对任何app,凡是使用了以上协议的基本原理一样 ...
- cglib FastClass机制
前言 关于动态代理的一些知识,以及cglib与jdk动态代理的区别,在这一篇已经介绍过,不熟悉的可以先看下. 本篇我们来学习一下cglib的FastClass机制,这是cglib与jdk动态代理的一个 ...
- linux 环境 打包 失败,一次解决过程
发现打包失败 测试发现 npm run build 打包失败 发现问题1 node_modules 库 没装 rm -rf node_modules 进行 npm install 安装失败 发现lin ...
- 基于python的密码生成器实例解析
一 概念 密码生成不复杂,可是它却涉及到了string的常用技巧和一些概念 记得python中的random模块,这是所有随机数的藏身之处 记得python中的string模块,这个是字符操作的盛 ...
- dbVisualizer之中文乱码
在SQL Commander中,sql语句中如果有中文,显示是'口口口'. 解决办法如下: 在Tools->tool Properties->General->Appearance- ...
- PAT 甲级【1012 The Best Rank】
本题用java极容易超时,提交了好几次才成功 另外90 88 77 77 50,名次应该是1 2 3 3 5 ,不是1 2 3 3 4 import java.io.*; public class M ...
- 3D渲染慢,直接买显卡还是用云渲染更划算?
3D渲染对建筑师和设计师来说并不陌生,3D渲染的过程中出现渲染卡顿.特殊材质难以渲染,或者本地配置不足.本地渲染资源不够时,常常会影响工作效率.本文比较了3D渲染时,为提高工作效率,买显卡还是用云渲染 ...
- 3DCAT+上汽奥迪:打造新零售汽车配置器实时云渲染解决方案
在 5G.云计算等技术飞速发展的加持下,云渲染技术迎来了突飞猛进的发展.在这样的背景下,3DCAT应运而生,成为了业内知名的实时云渲染服务商之一. 交互式3D实时云看车作为云渲染技术的一种使用场景,也 ...
- jQuery(常用API)
jQuery简介 1.基本使用 <!DOCTYPE html> <html lang="en"> <head> <meta charset ...
- QGIS中下载遥感影像的Python代码片段
1. 引言 QGIS是开源免费且好用的GIS软件,并且可以使用Python脚本来控制 这里主要使用的打开QGIS时启动内置的Python解释器,这个Python解释器可以访问iface接口从而实现对Q ...