先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7
深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新Golang全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Go语言开发知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
如果你需要这些资料,可以添加V获取:vip1024b (备注go)
正文
前言:
Hello大家好,我是Dream。 今天来学习一下如何基于mnist数据集取得最高的识别准确率,本文是从零开始的,如有需要可自行跳至所需内容~
本文目录:
说明:在此试验下,我们使用的是使用tf2.x版本,在jupyter环境下完成
在本文中,我们将主要完成以下这个任务:
- 基于mnist数据集,尽量取得更好的识别准确率。注意,要使用非训练集内容,通过evaluate方法得出准确率
1.调用库函数
import tensorflow as tf
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
from tensorflow.keras.preprocessing.image import ImageDataGenerator
from tensorflow.keras.layers import Conv2D,MaxPooling2D,BatchNormalization,Flatten,Dense
指定当前程序使用的 GPU
指定当前程序使用的 GPU
gpus = tf.config.experimental.list_physical_devices(‘GPU’)
for gpu in gpus:
tf.config.experimental.set_memory_growth(gpu, True)
2.调用数据集
调用数据集
(train_X, train_y),(test_X, test_y) = tf.keras.datasets.mnist.load_data()
train_X, test_X = train_X / 255.0, test_X / 255.0
train_X = train_X.reshape(-1, 28, 28, 1)
train_y = tf.keras.utils.to_categorical(train_y)
X_train, X_test, y_train, y_test = train_test_split(train_X, train_y, test_size=0.1, random_state=0)
3.选择模型,构建网络
在此我们使用的是CNN网络,以此搭建Conv2D层、MaxPooling2D层网络
选择模型,构建网络
model = tf.keras.Sequential()
model.add(Conv2D(64, (3, 3), activation=‘relu’, input_shape=(28, 28, 1))), #添加Conv2D层
model.add(Conv2D(64, (3, 3), activation=‘relu’)), #添加Conv2D层
model.add(MaxPooling2D((2, 2), strides=2)), #添加MaxPooling2D层
model.add(BatchNormalization()),
model.add(Conv2D(128, (3, 3), activation=‘relu’)), #添加Conv2D层
model.add(Conv2D(128, (3, 3), activation=‘relu’)), #添加Conv2D层
model.add(MaxPooling2D((2, 2), strides=2)), #添加MaxPooling2D层
model.add(BatchNormalization()),
model.add(Conv2D(256, (3, 3), activation=‘relu’)), #添加Conv2D层
model.add(MaxPooling2D((2, 2), strides=2)), #添加MaxPooling2D层
model.add(BatchNormalization()),
model.add(Flatten()), #展平
model.add(Dense(512, activation=‘relu’)),
model.add(Dense(10, activation=‘softmax’))
4.编译
使用交叉熵作为loss函数,指定优化器、损失函数和验证过程中的评估指标
编译(使用交叉熵作为loss函数)
model.compile(optimizer=‘adam’, #指定优化器
loss=“categorical_crossentropy”, #指定损失函数
metrics=[‘accuracy’]) #指定验证过程中的评估指标
展示训练的过程
display(model.summary())
这里是输出的结果:
5.数据增强
在这里我们使用数据增强方法,更好的提高准确率
数据增强
datagen = ImageDataGenerator(
rotation_range=15,
zoom_range = 0.01,
width_shift_range=0.1,
height_shift_range=0.1)
train_gen = datagen.flow(X_train, y_train, batch_size=128)
test_gen = datagen.flow(X_test, y_test, batch_size=128)
6.训练
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注Go)
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注Go)
[外链图片转存中…(img-5geeXD9y-1713235585607)]
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!