致远行的人,自编TensorFlow教程(1)

部署运行你感兴趣的模型镜像

这是本人自编的 TensorFlow 教程,本人对 TensorFlow 理解有限,请各位看官轻喷。本教程适用于 Python 基础不够好的同学,但仍然要求懂一些Python的基本语法。因为追求更加通俗易懂,本教程追求代码完整,描述冗长,请各位耐心看。谢谢!

首先是关于 TensorFlow 的安装,请参考
http://www.tensorfly.cn/tfdoc/get_started/os_setup.html
TensorFlow中文社区的安装指南,不过这个网站确实有长期不更新的感觉(没有实际证据)。同时Windows下也已经可以安装TensorFlow了,在下没有尝试过,也许需要熟悉Python的同学协助你;Linux或者MacBook使用pip即可安装。同时本教程基本使用CPU跑TensorFlow,请想使用GPU的同学自行学习。

本教程所有的代码都基于 Python3.6。

关于 TensorFlow 的最大的坑:API 频繁更改,请参考 http://devdocs.io/ 这个网站,上面有最新的 API 文档。当然,如果你可以翻墙上 TensorFlow 官网,或者上官网毫无压力,请上官网查阅相关文档。

以上是写在前面。如果有些地方看不懂,没有关系,只要装好TensorFlow就好,因为“Talk is cheap. Show me the code.”

在学习一门新的语言时,大家总是想先学如何写出“Hello, world!”程序。我们也从类似的打印输出开始吧,不过不是“Hello, world!”。

很多教程喜欢把步子迈得太大,在下智商有限,喜欢小步伐前进,同时更加平稳,注重细节。同时每段代码都是全的,就是说copy即可运行。

import tensorflow as tf

num = tf.constant([1, 2])
init = tf.global_variables_initializer()

with tf.Session() as sess:
    print(sess.run(num))

这段代码的输出很简单,就是打印[1 2],可自行跑一下,和打印“Hello, world”一个意思。稍微熟悉点编程的人都会说:“你TM在逗我!”。确实,打印一个变量,在Python里完全可以这样写(不要在意有没有逗号的区别,谢谢):

num = [1, 2]
print(num)

但放这么简单的代码出来,还是需要说一些 TensorFlow 的基本规则的,麻雀虽小五脏俱全嘛,接下来我会详细解释代码。

首先,一个用 TensorFlow 框架写的代码有两部分组成:定义一张计算图;在一个会话中启动图。也许你会不知道我在说什么,总之先记住有两部分组成。

num = tf.constant([1, 2])

这行代码是在TensorFlow的图里定义一个常量(注意,它不是变量)。tf.constant 这个API是用来定义常量的。然后在这段代码里,计算图就定义完了(说好的计算呢,这个慢慢会解释)。
注:出现tf当然是因为import tensorflow as tf这行代码,基础差的可以先不用管,记得照着写上这一行就行了。

init = tf.global_variables_initializer()

这行代码是初始化计算图,就是为一些变量开辟空间,同时将计算模型固定。严格来说我不能准确描述清楚这行代码的目的及意义,不过可以先照着写就可以了,没有这行代码一定会报错。

with tf.Session() as sess:
    print(sess.run(num))

然后就是用会话启动图了,首先要定义会话,为什么要定义会话呢?目前我理解有限,只能说TensorFlow的规定是这样。至于为什么要写成

with tf.Session() as sess: 

这样去定义会话,主要是因为省事,另一种定义会话的方式是

sess = tf.Session()
# 加上其他代码
sess.close()

你需要多写一行代码,为了避免忘记,建议用with。对了,为什么要close,目前我也只能说这也是规定,照着写就行了。

然后我们用sess.run()去计算图。比如sess.run(num)就是要求得到计算图里面num的计算结果。关于sess.run(),下一节会有更详细的介绍。

今天就介绍到这儿,万事开头难,会了基本规则,一般情况下可以先随意魔改一下代码,祝大家魔改顺利。

您可能感兴趣的与本文相关的镜像

Python3.10

Python3.10

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

MATLAB代码实现了一个基于多种智能优化算法优化RBF神经网络的回归预测模型,其核心是通过智能优化算法自动寻找最优的RBF扩展参数(spread),以提升预测精度。 1.主要功能 多算法优化RBF网络:使用多种智能优化算法优化RBF神经网络的核心参数spread。 回归预测:对输入特征进行回归预测,适用于连续值输出问题。 性能对比:对比不同优化算法在训练集和测试集上的预测性能,绘制适应度曲线、预测对比图、误差指标柱状图等。 2.算法步骤 数据准备:导入数据,随机打乱,划分训练集和测试集(默认7:3)。 数据归一化:使用mapminmax将输入和输出归一化到[0,1]区间。 标准RBF建模:使用固定spread=100建立基准RBF模型。 智能优化循环: 调用优化算法(从指定文件夹中读取算法文件)优化spread参数。 使用优化后的spread重新训练RBF网络。 评估预测结果,保存性能指标。 结果可视化: 绘制适应度曲线、训练集/测试集预测对比图。 绘制误差指标(MAE、RMSE、MAPE、MBE)柱状图。 十种智能优化算法分别是: GWO:灰狼算法 HBA:蜜獾算法 IAO:改进天鹰优化算法,改进①:Tent混沌映射种群初始化,改进②:自适应权重 MFO:飞蛾扑火算法 MPA:海洋捕食者算法 NGO:北方苍鹰算法 OOA:鱼鹰优化算法 RTH:红尾鹰算法 WOA:鲸鱼算法 ZOA:斑马算法
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值