深度学习 Day1——学习之前需要的工作准备

简介: 深度学习实战 Day 1

一、前言

我的环境:

  • 电脑系统:Win 11
  • 语言环境:Python 3.10
  • 编译器:PyCharm,Jupyter notebook
  • 深度学习环境:TensorFlow2

二、库的安装

Jupyter notebookTensorFlow都有对应的网页端,可以直接使用,非常方便,也可以在本地下载对应的库来实现,下载方式更其他库的方式一样。

CMD内使用pip下载:

pip install tensorflow
pip install jupyterlab
pip install notebook

三、官方示例演示

接下来是对于TensorFlow2.0的官方示例演示

如何目前你不熟悉TensorFlow和Jupyter的使用,你可以先在PyCharm中尝试一下:

首先导入tensorflow库

import tensorflow as tf

然后载入并准备好MNIST数据集,将样本从整数转换为浮点数。

mnist = tf.keras.datasets.mnist
(x_train, y_train), (x_test, y_test) = mnist.load_data()
x_train, x_test = x_train / 255.0, x_test / 255.0

其中MNIST手写字符数据集返回两个元组,其中方法中还包括一个参数:

参数 说明
x_train,x_test uint8 数组表示的灰度图像,尺寸为 (num_samples, 28, 28)
y_train,,y_test uint8 数组表示的数字标签(范围在 0-9 之间的整数),尺寸为 (num_samples,)
path 如果在本地没有索引文件 (at ‘~/.keras/datasets/’ + path), 它将被下载到该目录

到这里,可能会运行成功,也可能会运行失败,运行成功的结果是;

Downloading data from https://storage.googleapis.com/tensorflow/tf-keras-datasets/mnist.npz
11493376/11490434 [==============================] - 0s 0us/step
11501568/11490434 [==============================] - 0s 0us/step

失败的问题,我们待会解决,现在我们假设已经成功,接下来我们将模型的各层堆叠起来,以搭建tf.keras.Sequential模型,为训练选择优化器和损失函数;

model = tf.keras.models.Sequential([
  tf.keras.layers.Flatten(input_shape=(28, 28)),
  tf.keras.layers.Dense(128, activation='relu'),
  tf.keras.layers.Dropout(0.2),
  tf.keras.layers.Dense(10, activation='softmax')
])
model.compile(optimizer='adam',
              loss='sparse_categorical_crossentropy',
              metrics=['accuracy'])

其中,Sequential是顺序模型,顺序模型是多个网络层的线性堆叠。简单的说一下这一些方法的概念,想要更加深入的了解Keras这个基于Python的深度学习库可以去它的中文官网去学习一下,连接我就放在这里:https://keras.io/zh/

最后,我们来训练并验证模型:

model.fit(x_train, y_train, epochs=5)
model.evaluate(x_test,  y_test, verbose=2)

它运行的结果是:

Epoch 1/5
1875/1875 [==============================] - 6s 3ms/step - loss: 0.2968 - accuracy: 0.9145
Epoch 2/5
1875/1875 [==============================] - 6s 3ms/step - loss: 0.1437 - accuracy: 0.9573
Epoch 3/5
1875/1875 [==============================] - 4s 2ms/step - loss: 0.1085 - accuracy: 0.9674
Epoch 4/5
1875/1875 [==============================] - 6s 3ms/step - loss: 0.0891 - accuracy: 0.9725
Epoch 5/5
1875/1875 [==============================] - 4s 2ms/step - loss: 0.0781 - accuracy: 0.9753
313/313 - 1s - loss: 0.0725 - accuracy: 0.9782 - 516ms/epoch - 2ms/step
[0.07253240793943405, 0.9782000184059143]

可以看出,这个官方示例照片分类器的准确的已经达到了98%,想要了解更多也是去它的官网去查阅相关的使用教程等内容。

四、过程中遇见的一些问题

上面官方示例演示的第二部分可能会运行出错。

2022-08-01 20:19:21.294942: W tensorflow/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library 'cudart64_110.dll'; dlerror: cudart64_110.dll not found
2022-08-01 20:19:21.295104: I tensorflow/stream_executor/cuda/cudart_stub.cc:29] Ignore above cudart dlerror if you do not have a GPU set up on your machine.

出现这个情况我们先设置一下GPU:

import tensorflow as tf
gpus = tf.config.list_physical_devices("GPU")
if gpus:
    gpu0 = gpus[0]                                        #如果有多个GPU,仅使用第0个GPU
    tf.config.experimental.set_memory_growth(gpu0, True)  #设置GPU显存用量按需使用
    tf.config.set_visible_devices([gpu0],"GPU")

但是我们发现这样设置GPU之后还是报错,和之前的报错一样,这是因为最新版本的TensorFlow2默认安装CPU和GPU两个版本,而GPU是不能运行退回到CPU版本的这个时候。

我们发现错误里面提示**‘cudart64_110.dll’ not found**,因此我们需要手动将cudart64_110.dll添加到路径**“C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\bin”**中去。

cudart64_101.dll链接https://cn.dll-files.com/cudart64_101.dll.html

但是这个时候肯定有很多人会发现自己的Program Files文件夹里面根本就没有NVIDIA GPU Computing Toolkit这个文件夹,这是因为我们没有安装CUDA和CUDNN。

好现在我们要去下载CUDA和CUDNN,下载地址我就放在下面:

CUDAhttps://developer.nvidia.com/cuda-downloads

CUDNNhttps://developer.nvidia.com/rdp/cudnn-download

注意:CUDA和CUDNN要版本匹配才行,CUDA要选择自己电脑支持的版本。

可以在电脑桌面右击,选择NVIDIA 控制面板,然后点击帮助,然后点系统信息,再点组件就可以看见自己电脑支持的版本了。

顺便提一下,如何这两个下载速度很慢或者因为网络问题下载失败,需要挂VPN然后最好不要使用WiFi下载,直接连接手机热点下载,反正我用WiFi总是下载不了,换手机热点之后就好很多了。(但依旧慢的要死😭)

在漫长的等待过后,我们终于下载好了这个两个东西。

1、安装CUDA

CUDA的安装推荐默认的就行,这样也不会忘记安装地址了,如果C盘容量不足的话那还是换另一个盘安装,安装结束之后,我们需要测试一下CUDA是否安装成功.

我们直接在cmd里面输入命令:nvcc --version,显示如下即算安装成功。

然后使用命令:set cuda,可以查看cuda设置的环境变量。

2、安装CUDNN

下载之后直接解压该压缩包到你指定的路径里面,检查一下是不是这些文件

然后打开C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA路径,找到路径下的binincludelib目录,然后将解压后CUDNN里面对应的binincludelib目录下的文件对应的复制到binincludelib目录下。

然后也是检查一下安装是否成功。

打开C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2\extras\demo_suite路径,在此路径下打开Powershell(shift+鼠标右键选择在此处打开Powershell窗口),执行命令:.\bandwidthTest.exe,如何出现如下信息就证明安装成功:

到这里就CUDA和CUDNN的安装就结束了。

现在,我们重新打开PyCharm,然后重新运行程序,就会发现现在已经可以成功运行出结果了。

五、最后我想说

今天主要是进行一些环境搭建等前期工作,接下来就要跟着博主去训练各种项目,然后去总结知识,然后用博客的方式发出来,这也是这次活动的参与方式。

创作不易,谢谢你们的点赞收藏转发三连,文章里面有一些也是我翻阅了很多其他博主总结的,毕竟学习过程中遇见困难要学会自己去上网翻阅解决问题。

最后,文章如有某个地方出现错误或者不妥之处,也请大家为我指出,谢谢大家!!!

相关实践学习
部署Stable Diffusion玩转AI绘画(GPU云服务器)
本实验通过在ECS上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。
目录
相关文章
|
29天前
|
机器学习/深度学习 数据采集 人工智能
AI赋能教育:深度学习在个性化学习系统中的应用
【10月更文挑战第26天】随着人工智能的发展,深度学习技术正逐步应用于教育领域,特别是个性化学习系统中。通过分析学生的学习数据,深度学习模型能够精准预测学生的学习表现,并为其推荐合适的学习资源和规划学习路径,从而提供更加高效、有趣和个性化的学习体验。
85 9
|
2月前
|
机器学习/深度学习 传感器 人工智能
深度学习之自主学习和任务规划
基于深度学习的自主学习和任务规划,是指通过深度学习算法使人工智能(AI)系统能够自主地从环境中学习,并根据特定的目标和任务,规划出有效的解决方案。
60 3
|
6月前
|
机器学习/深度学习 算法 Python
使用Python实现深度学习模型:元学习与模型无关优化(MAML)
使用Python实现深度学习模型:元学习与模型无关优化(MAML)
331 0
使用Python实现深度学习模型:元学习与模型无关优化(MAML)
|
2月前
|
机器学习/深度学习 存储 自然语言处理
深度学习之少样本学习
少样本学习(Few-Shot Learning, FSL)是深度学习中的一个重要研究领域,其目标是在只有少量标注样本的情况下,训练出能够很好地泛化到新类别或新任务的模型。
38 2
|
2月前
|
机器学习/深度学习 自然语言处理 计算机视觉
深度学习中的迁移学习技术
【10月更文挑战第11天】 本文探讨了深度学习中的迁移学习技术,并深入分析了其原理、应用场景及实现方法。通过实例解析,展示了迁移学习如何有效提升模型性能和开发效率。同时,文章也讨论了迁移学习面临的挑战及其未来发展方向。
|
29天前
|
安全 搜索推荐 机器学习/深度学习
AI赋能教育:深度学习在个性化学习系统中的应用
【10月更文挑战第26天】在人工智能的推动下,个性化学习系统逐渐成为教育领域的重要趋势。深度学习作为AI的核心技术,在构建个性化学习系统中发挥关键作用。本文探讨了深度学习在个性化推荐系统、智能辅导系统和学习行为分析中的应用,并提供了代码示例,展示了如何使用Keras构建模型预测学生对课程的兴趣。尽管面临数据隐私和模型可解释性等挑战,深度学习仍有望为教育带来更个性化和高效的学习体验。
77 0
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
深度学习之复杂推理与逻辑学习
基于深度学习的复杂推理与逻辑学习是当前人工智能领域中的一个前沿研究方向,旨在结合深度学习与传统逻辑推理的优势,使机器能够在处理复杂任务时具备更强的推理能力。
36 2
|
6月前
|
机器学习/深度学习 人工智能 自然语言处理
深度学习中的自适应学习算法研究与应用
在深度学习领域,传统的静态模型在处理动态环境和非平稳数据时面临挑战。本文探讨了自适应学习算法在深度学习中的重要性及其应用。通过分析自适应学习算法在模型参数、损失函数和数据分布上的应用,展示了其在提升模型鲁棒性和泛化能力方面的潜力。具体讨论了几种代表性的自适应学习方法,并探索了它们在现实世界中的应用案例,从而展示了其在处理复杂问题和动态数据中的效果。
237 0
|
3月前
|
机器学习/深度学习 算法 自动驾驶
深度学习之分布式智能体学习
基于深度学习的分布式智能体学习是一种针对多智能体系统的机器学习方法,旨在通过多个智能体协作、分布式决策和学习来解决复杂任务。这种方法特别适用于具有大规模数据、分散计算资源、或需要智能体彼此交互的应用场景。
165 4
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
深度学习之生物启发的学习系统
基于深度学习的生物启发学习系统(Biologically Inspired Learning Systems)旨在借鉴生物大脑的结构和学习机制,设计出更高效、更灵活的人工智能系统。
26 0