郑州的建设网站有哪些,公司网站建设吧个好,永久免费网站虚拟主机,短视频广告投放平台前言#xff1a; 零基础学Python#xff1a;Python从0到100最新最全教程。 想做这件事情很久了#xff0c;这次我更新了自己所写过的所有博客#xff0c;汇集成了Python从0到100#xff0c;共一百节课#xff0c;帮助大家一个月时间里从零基础到学习Python基础语法、Pyth… 前言 零基础学PythonPython从0到100最新最全教程。 想做这件事情很久了这次我更新了自己所写过的所有博客汇集成了Python从0到100共一百节课帮助大家一个月时间里从零基础到学习Python基础语法、Python爬虫、Web开发、 计算机视觉、机器学习、神经网络以及人工智能相关知识成为学习学习和学业的先行者 欢迎大家订阅专栏零基础学PythonPython从0到100最新最全教程 今天来学习一下如何从0开始搭建全连接网络和CNN网络并通过实验简单对比一下两种神经网络的不同之处本文目录较长可以根据需要自动选取要看的内容~ 本文目录 一、搭建4层全连接神经网络1.调用库函数2.选择模型构建网络3.编译使用交叉熵作为loss函数4.输出5.画出图像6.结论 二、搭建CNN网络1.调用库函数2.调用数据集3.图片归一化4.选择模型构建网络5.编译6.批量输入的样本个数7.训练8.输出9.画出图像10.结论 三、两种网络对比文末送书**本期推荐1****本期推荐2** 说明在此试验下我们使用的是使用tf2.x版本在jupyter环境下完成 在本文中我们将主要完成以下四个任务 加载keras内置的mnist数据库 自己搭建简单神经网络并自选损失函数和优化方法 搭建4层全连接神经网络除输入层以外各层神经元个数分别为10003006410激活函数自选 搭建CNN网络要求有1个卷积层32卷积核1个池化层2x21个卷积层16卷积核1个全局池化层globalMaxPool一个全连接输出层激活函数自选
一、搭建4层全连接神经网络
加载keras内置的mnist数据库搭建4层全连接神经网络除输入层以外各层神经元个数分别为10003006410激活函数自选
1.调用库函数
import tensorflow as tf
import matplotlib.pyplot as plt
mnist tf.keras.datasets.mnist
from tensorflow.keras.layers import Flatten,Dense,Dropout2.选择模型构建网络
搭建4层全连接神经网络除输入层以外各层神经元个数分别为10003006410
(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()
model.add(Flatten(input_shape(28, 28)))
# 各层神经元个数分别为10003006410
model.add(Dense(1000, activationrelu))
model.add(Dense(300, activationrelu))
model.add(Dense(64, activationrelu))
model.add(Dropout(0.2)) # 采用20%的dropout
model.add(Dense(10, activationsoftmax)) # 输出结果是10个类别所以维度是10最后一层用softmax作为激活函数3.编译使用交叉熵作为loss函数
指明优化器、损失函数、准确率计算函数
# 编译使用交叉熵作为loss函数,指明优化器、损失函数、准确率计算函数
model.compile(optimizertf.keras.optimizers.Adam(),losstf.keras.losses.SparseCategoricalCrossentropy(from_logitsFalse),metrics[tf.keras.metrics.sparse_categorical_accuracy])# 训练训练10个epoch
history model.fit(x_train, y_train, epochs10)这里是训练的结果
4.输出
输出测试集上的预测准确率
# 输出
scores model.evaluate(x_test,y_test)
print(scores)
print(The accuracy of the model is %f % scores[1]) #输出测试集上的预测准确率这里是输出的结果
5.画出图像
使用plt模块进行数据可视化处理
# 画出图像
plt.plot(history.history[loss], colorred, labelLoss)
plt.legend(locbest)
plt.title(Training Loss)
plt.show()6.结论
第一种神经网络准确率0.976200
二、搭建CNN网络
要求有1个卷积层1个池化层1个全局池化层globalMaxPool一个全连接输出层激活函数自选
1.调用库函数
import matplotlib.pyplot as plt
import tensorflow as tf
import tensorflow_datasets as tfds
import math
from tensorflow.keras.layers import Conv2D,MaxPooling2D,GlobalMaxPooling2D,Flatten,Dense2.调用数据集
加载keras内置的mnist数据库
# 调用数据集
dataset, metaset tfds.load(mnist, as_supervisedTrue, with_infoTrue)
train_dataset, test_dataset dataset[train], dataset[test]3.图片归一化
# 图片归一化
def normalize(images, labels):images tf.cast(images, tf.float32)images / 255return images, labels
train_dataset train_dataset.map(normalize)
test_dataset test_dataset.map(normalize)4.选择模型构建网络
构建出1个卷积层1个池化层1个全局池化层globalMaxPool一个全连接输出层
# 选择模型构建网络
model tf.keras.Sequential()# 卷积层
model.add(Conv2D(32, (5, 5), paddingsame, activationtf.nn.relu, input_shape(28, 28, 1))), # 池化层
model.add(MaxPooling2D((2, 2), strides2)), # 全局池化层globalMaxPool
model.add(Conv2D(64, (5, 5), paddingsame, activationtf.nn.relu)), # 卷积层
model.add(GlobalMaxPooling2D()),# 全连接输出层
model.add(Flatten()),#展平
model.add(Dense(512, activationtf.nn.relu)),
model.add(Dense(10, activationtf.nn.softmax))# 输出结果是10个类别所以维度是10最后一层用softmax作为激活函数5.编译
指明优化器、损失函数、准确率计算函数
# 编译使用交叉熵作为loss函数,指明优化器、损失函数、准确率计算函数
model.compile(optimizeradam,losssparse_categorical_crossentropy,metrics[accuracy])
# 展示训练的过程
display(model.summary())这里是输出的结果
6.批量输入的样本个数
# 批量输入的样本个数
BATCH_SIZE 64
num_train metaset.splits[train].num_examples
num_test metaset.splits[test].num_examples
train_dataset train_dataset.repeat().shuffle(num_train).batch(BATCH_SIZE)
test_dataset test_dataset.repeat().shuffle(num_test).batch(BATCH_SIZE)7.训练
训练10个epoch
# 训练训练10个epoch
history model.fit(train_dataset, epochs10, steps_per_epochmath.ceil(num_train / BATCH_SIZE))这里是输出的结果
8.输出
# 输出
test_loss, test_accuracy model.evaluate(test_dataset, stepsmath.ceil(num_test / BATCH_SIZE))
print(test_loss, test_accuracy)这里是输出的结果
9.画出图像
使用plt模块进行数据可视化处理
# 画出图像
plt.plot(history.history[loss], colorred, labelLoss)
plt.legend(locbest)
plt.title(Training Loss)
plt.show()这里是输出的结果
10.结论
第二种神经网络准确率0.993232
三、两种网络对比
第一种神经网络准确率0.976200 第二种神经网络准确率0.993232 总结 通过对比我们可以发现CNN卷积神经网络相对于传统神经网络NN准确率会高一些由卷积的操作可知输出图像中的任何一个单元只跟输入图像的一部分有关系。而传统神经网络中由于都是全连接所以输出的任何一个单元都要受输入的所有的单元的影响。这样无形中会对图像的识别效果大打折扣因此CNN在此种方面会更具优势
文末送书 本期推荐1 《AI智能运营从入门到精通》 巧用AI大模型带你深度解析用户洞察精准策略智能创作数据模型构建你的竞争壁垒。 关键点 京东https://item.jd.com/14809514.html ★站在运营视角解读AI技术AI 的底层逻辑与应用方法。 ★AI构建精细化运营策略利用AI画像分层用户积分激励提升价值基于生命周期理论个性化推荐促精细化运营。 ★AI智能内容创作助手助您构建创意选题库策划高质量脚本降低内容重复率训练文案打造爆款标题生成调研问卷洞悉需求分析文本偏好以RSM模型规划活动并自动撰写运营周报。 ★AI驱动数据分析决策AI作为数据分析的强大助手不仅加速了决策效率还提供了从基础到进阶的全面运营数据分析能力。 内容简介 本书从多个方面介绍了如何整合AI技术进行运营工作包括AI与用户运营的融合、精细化运营策略的构建、智能内容创作助手的运用、AI驱动分析决策。 读者可以通过本书学习如何利用AI处理运营工作从而更好地满足目标受众需求提高内容质量做出更准确的决策并提升工作效率。本书内容丰富实用旨在帮助读者适应 本期推荐2 《AI智能运营从入门到精通》 Blender 2D动画制作指南:软件基础蜡笔应用动画原理3D辅助角色设计场景设计渲染导出全方位展示Blender 2D动画设计制作全流程。 京东https://item.jd.com/14833184.html 关键点 1.专业保证Blender 中国社区官方推荐笔者作为软件中国区大版主对动画行业的发展有精准把握。 2.跨界融合集3D动画空间感与2D动画绘画感于一体打破次元壁创造全新视觉体验。 3.全流程覆盖从软件基础到角色设计、场景设计、渲染导出全方位展示Blender 2D动画设计制作流程。 4.实战教学图文步骤视频教学源文件包效果展示助你快速上手轻松掌握动画制作精髓。 5.进阶提升夯实基础进阶修炼精美案例商业标准助你实现从新手到高手的华丽蜕变。 内容简介 Blender 是一款功能强大、免费且开源的图形图像软件它集成了建模、动画、材质设计、渲染、音频处理及视频剪辑等功能为动画短片的制作提供了一站式解决方案。本书专注于指导读者利 用 Blender 进行二维动画制作深入剖析其在蜡笔模式下的各类工具、修改器及视觉特效工具全面探索该模式下的功能特性。通过综合运用这些工具与多样化的表现形式读者将学会如何绘制并创作出富有创意的二维动画短片同时还将探索 Blender 在 2D 动画领域的更多绘制技巧与表现方式。 本书非常适合对 Blender 感兴趣想要学习新型的动画创作方法的零基础 2D 动画爱好者。此外它也非常适合动画、动漫、新媒体艺术、数字创意设计等相关专业的师生及从业者作为教学参考书或专业指南。