TensorFlow入门教程-程序员宅基地

技术标签: tensorflow  python  深度学习  人工智能  

TensorFlow入门教程

About Machine Learning
在这里插入图片描述
Demo Code

import tensorflow as tf

# 获取 mnist数据集
mnist = tf.keras.datasets.mnist

# 从 mnist中获取用于训练的数据集(x_trian, y_train),以及用于测试的数据集(x_test, y_test)
# x_trian 形状为(6000, 28, 28),表示 6000 张 28*28 的图片
# y_trian 形状为(6000, ),表示 x_train 对应的数字答案
(x_train, y_train), (x_test, y_test) = mnist.load_data()
x_train, x_test = x_train / 255.0, x_test / 255.0

model = tf.keras.models.Sequential([
    # 把 28*28 的图片展开成一个包含 784 个神经元一维数组
    tf.keras.layers.Flatten(input_shape=(28, 28)),
    
    # 传入参数 activation='relu',用 relu 作为激活函数,激活函数帮助网络使用重要的信息,抑制不相关的数据点。
    # relu 是一种激活函数,用于神经元的激活,根据上一个 Layer 给予的刺激算出神经元最后输出(显示)的那个数字。
    # Layer2 层有 128个神经元,这128个神经元会和 Layer1 中 728 个神经元相互连接,共将产生 728 * 128 =93184 权重(weights)各自不同的连接 。
    # Layer1 中神经元的输出将与连接到 layer2 的权重值进行加权求和,得到的结果会被带入 relu 函数,最终输出一个新的值作为 Layer2 中神经元的输出。
    tf.keras.layers.Dense(128, activation='relu'),
    
    # Dropout layer 主要作用是防止过度拟合。过渡拟合现象主要表现是:最终模型在训练集上效果好,但在测试集上效果差,模型泛化能力弱。
    # Dropout 解决过度拟合的办法之一,就是随机丢弃一部神经元。Demo 当中使用 Dropout 随机丢弃 20% 神经元。
    tf.keras.layers.Dropout(0.2),
    
    # Layer4 上有 10 个神经元,并使用 softmax 作为激活函数,这 10 个神经元的输出就是最终结果。
    tf.keras.layers.Dense(10, activation='softmax')
])

# 损失函数( Loss Function )、优化算法( Optimization Algorithms )、评价指标( Evaluation Metrics )
# Demo 中的 Loss Function 是稀疏类别交叉熵(sparse_categorical_crossentropy),这个算法擅长分类。
model.compile(optimizer='adam',
              loss='sparse_categorical_crossentropy',
              metrics=['accuracy'])

# 在神经网络领域,一个 epoch 是指整个训练数据集的训练一个周期。
# 1 epoch = 1正向传播( forward pass )+ 1 反向传播( backward pass )
# 正向传播是为了获得预测结果,反向传播是调整到最优的权重(weights)来让 Loss 最小化。
model.fit(x_train, y_train, epochs=10)
model.evaluate(x_test, y_test)

输出结果:
在这里插入图片描述

在机器学习中,模型( Model )是一个具有可学习参数的函数,它将输入映射到输出。最优参数是通过在数据上训练模型获得的。一个训练有素的模型将提供从输入到所需输出的精确映射。

模型是个函数,内置了很多参数,这些参数的值会直接影响模型的输出结果;这些参数都是可学习的,它们可以根据训练数据来进行调整,以获得一组最优值,使得模型的输出效果最理想。

Demo 要训练一个可以识别手写数字的模型(Model), 要识别的手写数字如图:
在这里插入图片描述

Demo中的数据集MNIST(Mixed National Institute of Standards and Technology database)是美国国家标准与技术研究院收集整理的大型手写数字数据库,包含 60000 个示例的训练集以及 10000 个示例的测试集,里面的图片如图所示:
在这里插入图片描述

图片是通过空间的矩阵的方式存储的
在这里插入图片描述

参考文章:
读懂一个 Demo,入门机器学习
【社区分享】TensorFlow Demo分析,带你快速入门深度学习

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_41924879/article/details/125695482

智能推荐

python-字符串中使用%%有什么作用?%操作符的各种用法小结_python %%-程序员宅基地

文章浏览阅读1.3w次,点赞6次,收藏43次。python-字符串中使用%%有什么作用?%操作符的各种用法小结_python %%

统计平均分:从文本读取成绩并计算平均分,将平均分写入文本文件保存_包含学生考试成绩的源文本文件中提取并计算平均分-程序员宅基地

文章浏览阅读1.2k次。从文本读取成绩并计算平均分,将平均分写入文本文件保存。【学习的细节是欢悦的历程】Python官网Free:大咖免费“圣经”教程python 完全自学教程,不仅仅是基础那么简单……自学并不是什么神秘的东西,一个人一辈子自学的时间总是比在学校学习的时间长,没有老师的时候总是比有老师的时候多。——华罗庚HOT好文力荐从文本读取成绩并计算平均分统计平均分(将平均分写入文本文件保存)本文质量分:90目 录。_包含学生考试成绩的源文本文件中提取并计算平均分

[Intensive Reading]MOT:FairMOT_fairmot实现mot评估-程序员宅基地

文章浏览阅读2.1k次,点赞5次,收藏10次。简介《FairMOT:A Simple Baseline for Multi-Object Tracking》是一个online的多目标跟踪(MOT)算法,基于TBD(Traking-by-Detection)的策略,FairMOT主要就是基于JDE做的改进,可以简单的理解为,FairMOT是将JDE的YOLOv3的主干,改成了CenterNet,也就是将检测的方法由Anchor-base换成了Anchor-free,然后同样在已有检测模型上加了了embeeding分支,模型输出检测的结果和embeedi_fairmot实现mot评估

VS 2008 显示代码行数/改变程序格式风格_vs2008显示行数-程序员宅基地

文章浏览阅读3.9k次。VS 2008 显示代码行数:开发环境C#,其他类同操作。工具-》选项-》文本编辑器-》C#里的显示“行号”勾上即可。-------------------------------------------------------------------------------------------------------改变VS程序风格:java风格: private v_vs2008显示行数

Web前端设计全方位解析:面试题总结+答案详解_前端实现填空题-程序员宅基地

文章浏览阅读1.5k次,点赞21次,收藏29次。面试习题大总结,进来免费白嫖啦_前端实现填空题

0043期基于python的CNN训练识别吃的-含数据集-程序员宅基地

文章浏览阅读681次,点赞19次,收藏14次。083基于深度学习的手势识别小程序版本_含10多种模型包括alexnet、DenseNet、DLA、GoogleNet、Mobilenet、ResNet、ResNeXt、ShuffleNet、VGG、EfficientNet和Swin transformer等10多种模型。117nlp自然语言处理-文本情感分类-joy-sadness-anger-fear-love-surprise。运行02深度学习模型训练.py就会将txt文本中记录的训练集和验证集进行读取训练,训练好后会保存模型在本地。

随便推点

Sql注入之sqlmap+dvwa实例演练-程序员宅基地

文章浏览阅读927次。Sql注入之sqlmap+dvwa实例演练 相信很多同学都已经知道了什么是sql注入,也明白为什么会发生sql注入。也可以通过在输入框和url中“手工”注入,来实现绕过登录、非法修改这样有趣又实用的功能。但这些还远不能让我们感觉到sql注入的巨大威力。你也一定听过各种各样的新闻报道xxx网站被黑,上百万用户数据泄露。想知道它们是如何获得这些数据的吗?不讲过多原理,就和实验楼的【S..._模拟一次sql注入操作实例dvwa

在VUE中使用swiper,swiper全屏滑动_vue swiper组件上下滑动全屏-程序员宅基地

文章浏览阅读5.6k次。1,安装npm install --s vue-awesome-swiper2,在main.js中使用import vueAwesomeSwiper from 'vue-awesome-swiper'Vue.use(vueAwesomeSwiper);3,在页面使用<template> <div class="home"> <s..._vue swiper组件上下滑动全屏

百度ueditor富文本编辑器支持从word复制粘贴保留格式和图片的插件_ueditor怎么设置只保留编辑文字的功能插件-程序员宅基地

文章浏览阅读266次。tinymce是很优秀的一款富文本编辑器,可以去官网下载。https://www.tiny.cloud这里分享的是它官网的一个收费插件powerpaste的旧版本源码,但也不影响功能使用。umeditor+粘贴word图片 – 泽优软件博客以vue为例说明:将tinymce下载后放到static目录下,不用npm安装。powerpaste放到\static\tinymce\plugins目录下在index.html中引入tinymce.min.js。代码参数配置如_ueditor怎么设置只保留编辑文字的功能插件

linux catalina.sh java_opts,Tomcat启动脚本catalina.sh---解读-程序员宅基地

文章浏览阅读1k次。原网址:http://blog.csdn.net/sun8288/article/details/78431271 - 概述脚本catalina.sh用于启动和关闭tomcat服务器,是最关键的脚本另外的脚本startup.sh和shutdown.sh都是使用不同的参数调用了该脚本该脚本的使用方法如下(引自该脚本本身):echo "Usage: catalina.sh ( commands ......_catalina.sh java_opts

【算法题】一种字符串压缩表示的解压(js)-程序员宅基地

文章浏览阅读100次。全部由小写英文字母组成,压缩后不会出现@,故输出不合法。两个d不需要压缩,故输入不合法。_一种字符串压缩表示的解压

matplotlib将figure转化为numpy的array矩阵格式_manager.canvas.figure转换成array-程序员宅基地

文章浏览阅读3.7k次,点赞3次,收藏10次。最近碰到一个问题,python读入视频,并处理每一张图片,并将处理的结果用quiver显示为矢量图,然后将矢量图转化为numpy数据。在这整个过程中碰到以下问题:1)怎么使用quiver,这个用起来有很多参数需要设置,没有MATLAB用起来方便,不过这个不是本博文的重点。2)怎么将矢量图的效果转化为numpy数据,这个我在百度上搜索了好多博文,但是都不是我想要的效果,当我科学上网时,发现matplotlib有官方的介绍,这里贴出链接3)成功的转化为numpy后,又发现我的数据又多了轴参数,致使整个_manager.canvas.figure转换成array

推荐文章

热门文章

相关标签