前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >使用tensorflow创建一个简单的神经网络

使用tensorflow创建一个简单的神经网络

作者头像
生信修炼手册
发布于 2021-07-06 08:37:45
发布于 2021-07-06 08:37:45
1.1K00
代码可运行
举报
文章被收录于专栏:生信修炼手册生信修炼手册
运行总次数:0
代码可运行

欢迎关注”生信修炼手册”!

本文是对tensorflow官方入门教程的学习和翻译,展示了创建一个基础的神经网络模型来解决图像分类问题的过程。具体步骤如下

1. 加载数据

tensorflow集成了keras这个框架,提供了Fashion MNIST数据集,该数据集包含了10个类别共7万张服装图像,加载方式如下

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
>>> import tensorflow as tf
>>> from tensorflow import keras
>>> import numpy as np
>>> import matplotlib.pyplot as plt
>>> print(tf.__version__)
2.5.0
>>> fashion_mnist = keras.datasets.fashion_mnist
>>> (train_images, train_labels), (test_images, test_labels) = fashion_mnist.load_data()
Downloading data from https://storage.googleapis.com/tensorflow/tf-keras-datasets/train-labels-idx1-ubyte.gz
32768/29515 [=================================] - 0s 1us/step
Downloading data from https://storage.googleapis.com/tensorflow/tf-keras-datasets/train-images-idx3-ubyte.gz
26427392/26421880 [==============================] - 2s 0us/step
Downloading data from https://storage.googleapis.com/tensorflow/tf-keras-datasets/t10k-labels-idx1-ubyte.gz
8192/5148 [===============================================] - 0s 1us/step
Downloading data from https://storage.googleapis.com/tensorflow/tf-keras-datasets/t10k-images-idx3-ubyte.gz
4423680/4422102 [==============================] - 0s 0us/step
>>> class_names = ['T-shirt/top', 'Trouser', 'Pullover', 'Dress', 'Coat','Sandal', 'Shirt', 'Sneaker', 'Bag', 'Ankle boot']
>>> train_images.shape
(60000, 28, 28)
>>> train_images.shape
(60000, 28, 28)
>>> len(train_labels)
60000
>>> train_labels
array([9, 0, 0, ..., 3, 0, 5], dtype=uint8)

对这7万张图像,其中6万张用于训练模型,1万张用于评估模型效果,通过以下代码,可以查看具体的图像内容

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
>>> train_images = train_images / 255.0
>>> test_images = test_images / 255.0
>>> plt.figure(figsize=(10, 10))
<Figure size 1000x1000 with 0 Axes>
>>> for i in range(25):
...     plt.subplot(5, 5, i + 1)
...     plt.xticks([])
...     plt.yticks([])
...     plt.grid(False)
...     plt.imshow(train_images[i], cmap=plt.cm.binary)
...     plt.xlabel(class_names[train_labels[i]])
...
>>> plt.show()

可视化结果如下

2. 构建神经网络

利用keras的高级API可以方便的构建神经网络模型,这里构建一个3层的神经网络,依次为输入层,隐藏层,输出层,代码如下

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
>>> model = keras.Sequential([
...     keras.layers.Flatten(input_shape=(28, 28)),
...     keras.layers.Dense(128, activation='relu'),
...     keras.layers.Dense(10)
... ])

输入层的作用是将28X28像素的灰度图像转换为一维数组,没有任何参数;隐藏层包含了128个神经元,输出层包含了10个神经元,对应10个服装类别。

3. 编译

模型在训练之前,必须对其进行编译,主要是确定损失函数,优化器以及评估分类效果好坏的指标,代码如下

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
>>> model.compile(optimizer='adam', loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True),metrics=['accuracy'])

4. 训练模型

使用训练集训练模型,代码如下

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
>>> model.fit(train_images, train_labels, epochs=10)
2021-06-16 09:40:47.034516: I tensorflow/compiler/mlir/mlir_graph_optimization_pass.cc:176] None of the MLIR Optimization Passes are enabled (registered 2)
Epoch 1/10
1875/1875 [==============================] - 6s 2ms/step - loss: 0.5006 - accuracy: 0.8248
Epoch 2/10
1875/1875 [==============================] - 3s 2ms/step - loss: 0.3785 - accuracy: 0.8640
Epoch 3/10
1875/1875 [==============================] - 4s 2ms/step - loss: 0.3386 - accuracy: 0.8758
Epoch 4/10
1875/1875 [==============================] - 4s 2ms/step - loss: 0.3138 - accuracy: 0.8856
Epoch 5/10
1875/1875 [==============================] - 4s 2ms/step - loss: 0.2969 - accuracy: 0.8906
Epoch 6/10
1875/1875 [==============================] - 4s 2ms/step - loss: 0.2816 - accuracy: 0.8958
Epoch 7/10
1875/1875 [==============================] - 4s 2ms/step - loss: 0.2700 - accuracy: 0.8996
Epoch 8/10
1875/1875 [==============================] - 4s 2ms/step - loss: 0.2596 - accuracy: 0.9034
Epoch 9/10
1875/1875 [==============================] - 3s 2ms/step - loss: 0.2485 - accuracy: 0.9078
Epoch 10/10
1875/1875 [==============================] - 4s 2ms/step - loss: 0.2413 - accuracy: 0.9109
<tensorflow.python.keras.callbacks.History object at 0x00000286E608ED88>

5. 评估模型

使用测试集评估模型效果,代码如下

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
>>> test_loss, test_acc = model.evaluate(test_images, test_labels, verbose=2)
313/313 - 1s - loss: 0.3343 - accuracy: 0.8850

6. 使用模型进行预测

为了更好的显示预测结果,在模型的后面添加一层softmax层,表示每个类别对应的概率,代码如下

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
>>> probability_model = tf.keras.Sequential([model, tf.keras.layers.Softmax()])
>>> predictions = probability_model.predict(test_images)
>>> predictions[0]
array([3.61419183e-07, 9.85207915e-09, 1.53500035e-09, 8.95436336e-10,
       4.15553314e-10, 3.14166857e-04, 1.43166235e-05, 6.38929196e-03,
       4.86064877e-09, 9.93281841e-01], dtype=float32)
>>> np.argmax(predictions[0])
9
>>> test_labels[0]
9

上述代码完整展示了神经网络模型的构建,训练,预测等过程,可以看到,通过tensorflow的API可以简单快速的构建一个神经网络模型。

·end·

—如果喜欢,快分享给你的朋友们吧—

原创不易,欢迎收藏,点赞,转发!生信知识浩瀚如海,在生信学习的道路上,让我们一起并肩作战!

本公众号深耕耘生信领域多年,具有丰富的数据分析经验,致力于提供真正有价值的数据分析服务,擅长个性化分析,欢迎有需要的老师和同学前来咨询。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-06-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 生信修炼手册 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
由“淘时代”进入“拼时代”的底层逻辑
混沌大学李善友曾经这样评价黄峥,他看到了别人看不到的,并且让拼多多在饱和竞争领域实现了神奇增长。
孟永辉
2020/10/29
3710
由“淘时代”进入“拼时代”的底层逻辑
带领拼多多超越京东后,黄峥依旧不想“搭理”五环内人群
2015 年,一个电商 App 在互联网横空出世。谁也不会想到,到 2018 年 12 月,它的月活用户达 2.71 亿,在电商领域仅次于淘宝,它就是拼多多。
Python数据科学
2019/03/18
5910
带领拼多多超越京东后,黄峥依旧不想“搭理”五环内人群
小程序成微信社交打造智慧零售生态圈的关键环节
随着零售业运营成本不断攀升,门店引流能力有限,零售商对于精准获客以及顾客有效留存和转化的需求极为强烈,线上线下的一体化融合已是大势所趋。
场景录小程序
2018/07/04
1.2K0
小程序成微信社交打造智慧零售生态圈的关键环节
小程序:万亿新零售市场的一张好牌?
随着跳一跳、弹一弹和拼多多等多款应用的刷屏,围绕强势微信衍生的小程序,在这个时间节点被推向了“风口”。那小程序是否是万亿新零售市场的一张好牌呢?
深圳秀思科技有限公司
2018/07/27
4590
小程序:万亿新零售市场的一张好牌?
拼多多突击上市,从四大关键问题理解“天才少年”
6月29日,拼多多向美国证券交易委员会(SEC)递交招股说明书,这距离其2015年9月上线才不到三年,只要在春节前顺利IPO,拼多多就会打破趣店保持的从上线到上市的最短时间记录,而从美股审核速度来看,这是大概率事件。在拼多多提交招股书前夕我曾撰文表示,《拼多多不等于电商版Facebook》,在看完招股书后,我对拼多多有了更多的认知。
罗超频道
2018/07/23
4200
拼多多突击上市,从四大关键问题理解“天才少年”
传统电商做小程序的好处,拒绝盲目跟风
​​​2018年小程序的发展速度加快,越来越多的行业加入小程序的行列,用小程序开启了新的发展。
场景录小程序
2018/06/26
1.1K0
传统电商做小程序的好处,拒绝盲目跟风
淘宝的绝地求生:推出「小程序」到底是在反击微信,还是要打击京东
此前,阿里巴巴生态链从业人士向媒体透露,手淘 App 将在今年三月份推出小程序,并表示,已有合作伙伴从阿里巴巴内部高层会议得知,推进手淘小程序一事势在必行。「手淘小程序目的在于打通会员体系。而且,随着直播和微淘等场景的碎片化,手淘也需要有一个即用即走的场景。」
知晓君
2018/07/26
4860
小程序做了,如何运营推广?快呗小程序来揭秘!
小程序随着微信的逐步开放迎来行业内外的高度关注,小程序给生活带来的颠覆很多,那么企业如何运营小程序,做好推广、留存、分享、唤醒呢?以下几点运营思路,或许会给你带来一些启发。
用户1745481
2019/01/08
1.3K0
响铃:“新品牌计划”出炉,但拼多多要的不只是C2M
或者说,走寻常路的拼多多也不可能在舆论的枪林弹雨中活下来。现在看来,拼多多不但活着,还开始了反击,“不寻常的路”最近又添新花样。
曾响铃
2018/12/27
3820
增量市场难以为继,一场电商市场下沉鏖战已然打响
两年前就出现在过大众的视野,拼多多在美国敲钟上市后,重新把下沉市场推上了风口,头部电商玩家巨头纷纷醒悟,原来下沉市场的力量是如此强大!
数商云
2019/08/20
3840
微信终现「淘宝」级超级入口,电商小程序即将迎来大变局
1 月 4 日,京东与美丽联合集团(蘑菇街、美丽说母公司)宣布组建合资公司,二者基于微信发现中的「购物」一级入口,共同运营电商平台。
知晓君
2018/07/26
6330
拼多多年报:构建自己的电商新世界
北京时间4月25日,拼多多向SEC(美国证券交易委员会)提交2019年年报,从财务数据上看,与3月11发布的四季度及全年业绩公告并无出入。
金融外参
2020/04/27
4940
拼多多年报:构建自己的电商新世界
小程序爆发正当时,零售实体店如何借其翻盘?
企鹅号小编
2018/01/02
7870
小程序爆发,2018小程序这4个方向你要知道!
1. 放开品类。伴随着与苹果的漫长谈判逐步结束,利益分配规则建立起来,微信小程序将实现对游戏、虚拟交易更大地支持。
用户1745481
2019/01/09
4330
拼多多不等于电商版Facebook
今天,据《中国企业家》报道,2018年声名鹊起的拼多多将于下周向美国SEC提交赴美上市文件,冲刺美股,CEO黄峥对此表示“不予置评”。鉴于《中国企业家》是中国可信的权威媒体,而黄峥回应较为暧昧,我认为这一消息八九不离十。
罗超频道
2018/07/23
8550
拼多多不等于电商版Facebook
小程序创业指南:不要只是做小程序,而是做一门生意
本文是九合创投许妙成现场的分享实录,也是九合近一年来在小程序领域的深度调研总结,从功能分类、变现方法、用户黏性等多个维度解析,并提出了基于执行层的建设性意见。希望能给各位对小程序领域感兴趣的创业者和开发者带来思考和启发。
Titan框架
2019/05/07
1.5K0
小程序创业指南:不要只是做小程序,而是做一门生意
干货|微信+小程序直播+短视频,帮你实现微信商业化关键一步!
2020年,直播电商无疑是最热的风口,前有罗永浩高调宣布进军直播电商,后有斗鱼重启电商直播,让整个直播电商赛道变的异常热闹。与此同时,一股来自小程序的直播力量强势崛起。自今年2月微信小程序直播启动公测以来,已经吸引了众多的品牌加入小程序直播阵营。接力微信,智慧商业服务提供商也在不动声色地加码直播电商业务,不仅推出小程序直播平台,还通过产业基金投资了直播电商服务机构。直播电商风口之下,商家们能否乘势而上,在竞争激烈的直播电商市场抢占一席之地?
云店加小程序分享
2020/04/16
1.4K0
小程序已成企业新标配,BAT决战小程序的商业逻辑
BAT三家之中,为何只有微信小程序具有强大的用户流量以及生态场景能力?在微信生态之中,小程序如何才能存活下来?
深圳秀思科技有限公司
2018/07/27
6090
小程序已成企业新标配,BAT决战小程序的商业逻辑
成了腾讯“增量”利器,微信小程序的春天真来了?
小程序在朋友圈、公众号、微信群、个人号之间,成了一个连接器,把这个封闭的圈子生态造活了。微信通过守住用户的时间,让微信从简单的社交产品转向成为链接人的一个全功能性的超级APP,成为腾讯的增量杀器。
深圳秀思科技有限公司
2018/07/27
4740
成了腾讯“增量”利器,微信小程序的春天真来了?
拼多多的底层逻辑
jd发财报之前,我又买进了一些jd的股票。mt发财报之前也买了一些mt的股票。目前手里个股的股票主要是腾讯系的公司:tx,mt,jd,pdd。
春哥大魔王
2020/08/26
1.1K0
拼多多的底层逻辑
推荐阅读
相关推荐
由“淘时代”进入“拼时代”的底层逻辑
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验