Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,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 删除。

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
从零开始学TensorFlow【01-搭建环境、HelloWorld篇】
最近在学习TensorFlow的相关知识,了解了TensorFlow一些基础的知识,现在周末有空了,就写写一些笔记,记录一下自己的成长~
Java3y
2019/08/27
8240
从零开始学TensorFlow【01-搭建环境、HelloWorld篇】
TensorFlow从1到2(四)时尚单品识别和保存、恢复训练数据
在TensorFlow官方新的教程中,第一个例子使用了由MNIST延伸而来的新程序。 这个程序使用一组时尚单品的图片对模型进行训练,比如T恤(T-shirt)、长裤(Trouser),训练完成后,对于给定图片,可以识别出单品的名称。
俺踏月色而来
2019/04/22
7380
TensorFlow从1到2(四)时尚单品识别和保存、恢复训练数据
TensorFlow从1到2(三)数据预处理和卷积神经网络
从这个例子开始,相当比例的代码都来自于官方新版文档的示例。开始的几个还好,但随后的程序都将需要大量的算力支持。Google Colab是一个非常棒的云端实验室,提供含有TPU/GPU支持的Python执行环境(需要在Edit→Notebook Settings设置中打开)。速度比不上配置优良的本地电脑,但至少超过平均的开发环境。 所以如果你的电脑运行速度不理想,建议你尝试去官方文档中,使用相应代码的对应链接进入Colab执行试一试。 Colab还允许新建Python笔记,来尝试自己的实验代码。当然这一切的前提,是需要你科学上网。
俺踏月色而来
2019/04/21
1K0
TensorFlow的教程
TensorFlow是一个开源的机器学习框架,由Google开发,广泛用于深度学习和人工智能项目。本教程将带你逐步了解如何使用TensorFlow构建一个简单的神经网络,并训练它以进行基本的图像分类任务。在本教程中,我们将介绍TensorFlow的基本概念、构建神经网络的步骤以及如何进行模型训练和评估。
Michel_Rolle
2024/01/31
2.7K0
手把手搭建一个【卷积神经网络】
本文介绍卷积神经网络的入门案例,通过搭建和训练一个模型,来对10种常见的物体进行识别分类;使用到CIFAR10数据集,它包含10 类,即:“飞机”,“汽车”,“鸟”,“猫”,“鹿”, “狗”,“青蛙”,“马”,“船”,“卡车” ;共 60000 张彩色图片;通过搭建和训练卷积神经网络模型,对图像进行分类,能识别出图像是“汽车”,或“鸟”,还是其它。
一颗小树x
2021/05/12
1.4K0
手把手搭建一个【卷积神经网络】
深度学习三大框架对比与实战:PyTorch、TensorFlow 和 Keras 全面解析
在当今深度学习领域,PyTorch、TensorFlow 和 Keras 是三大主流框架。它们各具特色,分别满足从研究到工业部署的多种需求。本文将通过清晰的对比和代码实例,帮助你了解这些框架的核心特点以及实际应用。
用户11292525
2024/11/21
3520
Python深度学习精华笔记1:深度学习中的数学基础和张量操作
MNIST数据集是一个大型的手写数字识别数据集,由美国国家标准技术研究所(NIST)收集并公开提供。该数据集包含约70000张手写数字图像,每张图像都是28x28像素大小的,灰度模式。
皮大大
2023/08/29
2730
使用tensorflow构建一个卷积神经网络
本文是对tensforflow官方入门教程的学习和翻译,展示了创建一个基础的卷积神经网络模型来解决图像分类问题的过程。具体步骤如下
生信修炼手册
2021/07/06
8080
使用tensorflow构建一个卷积神经网络
[TensorFlow深度学习入门]实战十二·使用DNN网络实现自动编码器
[TensorFlow深度学习入门]实战十二·使用DNN网络实现自动编码器 测试代码 import os os.environ["KMP_DUPLICATE_LIB_OK"]="TRUE" import tensorflow as tf from tensorflow import keras # Helper libraries import numpy as np import matplotlib.pyplot as plt fashion_mnist = keras.datasets.fashi
小宋是呢
2019/06/27
5200
TensorFlow 2.0 Beta 已来,RC 还会远吗?
TensorFlow 发布以来,已经成为全世界最广泛使用的深度学习库。但 Tensorflow 1.x 时代最广受诟病的问题是:学习门槛较高、API 重复且复杂、模型部署和使用不够方便。之后,谷歌下定决心改变这一问题,在今年早些时候,发布了 Tensorflow 2.0 的 Alpha 版本。Alpha 版本一经问世,便受到深度学习研究者、开发者和在校学生的好评,其简洁的 API 和快速易上手的特性吸引了更多用户的加入。今天,Tensorflow 官方发布了 2.0 时代的 Beta 版本,标志着 Tensorflow 这一经典的代码库进一步成熟。
abs_zero
2019/06/14
1.1K0
TensorFlow 2.0 Beta 已来,RC 还会远吗?
【TensorFlow2.x开发—基础】 模型保存、加载、使用
本文主要介绍在TensorFlow2 中使用Keras API保存整个模型,以及如果使用保存好的模型。保存整个模型时,有两种格式可以实现,分别是SaveModel和HDF5;在TF2.x中默认使用SavedModel格式。
一颗小树x
2021/05/15
4.7K0
【TensorFlow2.x开发—基础】 模型保存、加载、使用
Basic classification: Classify images of clothing
This guide trains a neural network model to classify images of clothing, like sneakers and shirts.
XianxinMao
2021/07/27
4050
Fashion_mnist 数据集 图像识别
fashion_mnist 和 mnist 一样,都是深度学习入门用的简单数据集,两者的图片尺寸一样,都是28x28。fashion_mnist的训练集有6万张图片,测试集有1万张图片,全是衣服、鞋、包包之类的图片,共10个类别:
用户6021899
2020/01/17
1.4K0
Fashion_mnist 数据集 图像识别
TensorFlow Serving
TensorFlow Serving[1] 可以快速部署 Tensorflow 模型,上线 gRPC 或 REST API。
GoCoding
2021/05/06
5900
TensorFlow Serving
[Keras深度学习浅尝]实战一·DNN实现Fashion MNIST 数据集分类
Fashion-MNIST是一个替代MNIST手写数字集的图像数据集。 它是由Zalando(一家德国的时尚科技公司)旗下的研究部门提供。其涵盖了来自10种类别的共7万个不同商品的正面图片。Fashion-MNIST的大小、格式和训练集/测试集划分与原始的MNIST完全一致。60000/10000的训练测试数据划分,28x28的灰度图片。你可以直接用它来测试你的机器学习和深度学习算法性能,且不需要改动任何的代码。
小宋是呢
2019/06/27
1.2K0
[Keras深度学习浅尝]实战一·DNN实现Fashion MNIST 数据集分类
针对时尚类MINIST数据集探索神经网络
fashion MNIST数据集可以从Github获取。它包含10种类别的灰度图像,共7000个,每个图像的分辨率均为28x28px。下图以25张带有标签的图片向我们展示了该数据集中的数据。
AI研习社
2019/05/14
1.2K0
keras的数字图像识别
https://aistudio.baidu.com/aistudio/projectdetail/1484526
黎明你好
2021/02/08
1.1K0
keras的数字图像识别
【TensorFlow2.x 实践】服装分类
基于TensorFlow2.x的框架,使用PYthon编程语言,实现对服装图像进行分类。
润森
2022/09/22
8590
【TensorFlow2.x 实践】服装分类
MOOC TensorFlow入门实操课程代码回顾总结(一)
0 T-shirt/top(体恤) 1 Trouser(裤子) 2 Pullover(套头衫) 3 Dress(连衣裙) 4 Coat(外套) 5 Sandal(凉鞋) 6 Shirt(衬衫) 7 Sneaker(运动鞋) 8 Bag(袋子) 9 Ankle boot(短靴)
荣仔_最靓的仔
2022/01/05
7420
MOOC TensorFlow入门实操课程代码回顾总结(一)
深度学习工具和框架详细指南:PyTorch、TensorFlow、Keras
在深度学习的世界中,PyTorch、TensorFlow和Keras是最受欢迎的工具和框架,它们为研究者和开发者提供了强大且易于使用的接口。在本文中,我们将深入探索这三个框架,涵盖如何用它们实现经典深度学习模型,并通过代码实例详细讲解这些工具的使用方法。
平凡之路.
2024/11/21
1.4K0
推荐阅读
相关推荐
从零开始学TensorFlow【01-搭建环境、HelloWorld篇】
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验