深度学习神经网络训练环境配置以及演示

🎬个人简介:一个全栈工程师的升级之路!
📋个人专栏:高性能(HPC)开发基础教程
🎀CSDN主页 发狂的小花
🌄人生秘诀:学习的本质就是极致重复!

目录

1 NVIDIA Driver and CUDA cuDNN安装配置

2 TensorRT安装配置

2.1 版本对应

2.2 环境配置解压后进入TensorRT根目录:

2.3 安装python包

2.4 测试

3 训练


1 NVIDIA Driver and CUDA cuDNN安装配置

        这三者安装安装顺序是GPU Driver->CUDA->cuDNN,可以参考CUDA环境配置在Ubuntu18

        注意:版本要对应

2 TensorRT安装配置

2.1 版本对应

        笔者CUDA为12.1.1 因此需要找到对应的TensorRT,官网TensorRT官网

2.2 环境配置
解压后进入TensorRT根目录:


(1)环境变量

       

 vi ~/.bashrc


在文件末尾添加一行代码:

export LD_LIBRARY_PATH=/home/hubery/lib/TensorRT-8.6.1.6/lib:$LD_LIBRARY_PATH


关闭保存

source ~/.bashrc

(2)复制文件到系统路径
把TensorRT根目录中的/lib/下面的文件复制到 /usr/lib/下,
把TensorRT根目录中的/include/下面的文件复制到 /usr/include/下

2.3 安装python包

进入TensorRT根目录下的python/目录下
可以看到多个版本的python包。
因为我之前安装的是python3.10版,所以选择安装文件tensorrt_dispatch-8.6.1-cp310-none-linux_x86_64.whl
执行安装命令:

pip install --force-reinstall tensorrt_dispatch-8.6.1-cp310-none-linux_x86_64.whl


2.4 测试


执行无报错


3 TensorFlow 安装配置

3.1 GPU版本

 pip3 install tensorflow-gpu==2.10.0

3.2 CPU版本

 pip3 install tensorflow==2.10.0

一般安装TensorFlow时会自动安装keras,如果没有,可以单独安装

pip3 install keras

3.3 测试

3 训练

代码来自从零入门 AI 视觉:历时 3 个月,我的代码仓库开源了

# 导入NumPy数学工具箱
import numpy as np 
# 导入Pandas数据处理工具箱
import pandas as pd
# 从 Keras中导入 mnist数据集
from keras.datasets import mnist(X_train_image, y_train_lable), (X_test_image, y_test_lable) =  mnist.load_data() # 导入keras.utils工具箱的类别转换工具
from tensorflow.keras.utils import to_categorical
# 给标签增加维度,使其满足模型的需要
# 原始标签,比如训练集标签的维度信息是[60000, 28, 28, 1]
X_train = X_train_image.reshape(60000,28,28,1)
X_test = X_test_image.reshape(10000,28,28,1)# 特征转换为one-hot编码
y_train = to_categorical(y_train_lable, 10)
y_test = to_categorical(y_test_lable, 10)# 从 keras 中导入模型
from keras import models 
# 从 keras.layers 中导入神经网络需要的计算层
from keras.layers import Dense, Dropout, Flatten, Conv2D, MaxPooling2D
# 构建一个最基础的连续的模型,所谓连续,就是一层接着一层
model = models.Sequential()
# 第一层为一个卷积,卷积核大小为(3,3), 输出通道32,使用 relu 作为激活函数
model.add(Conv2D(32, (3, 3), activation='relu', input_shape=(28,28,1)))
# 第二层为一个最大池化层,池化核为(2,2)
# 最大池化的作用,是取出池化核(2,2)范围内最大的像素点代表该区域
# 可减少数据量,降低运算量。
model.add(MaxPooling2D(pool_size=(2, 2)))
# 又经过一个(3,3)的卷积,输出通道变为64,也就是提取了64个特征。
# 同样为 relu 激活函数
model.add(Conv2D(64, (3, 3), activation='relu'))
# 上面通道数增大,运算量增大,此处再加一个最大池化,降低运算
model.add(MaxPooling2D(pool_size=(2, 2)))
# dropout 随机设置一部分神经元的权值为零,在训练时用于防止过拟合
# 这里设置25%的神经元权值为零
model.add(Dropout(0.25)) 
# 将结果展平成1维的向量
model.add(Flatten())
# 增加一个全连接层,用来进一步特征融合
model.add(Dense(128, activation='relu'))
# 再设置一个dropout层,将50%的神经元权值为零,防止过拟合
# 由于一般的神经元处于关闭状态,这样也可以加速训练
model.add(Dropout(0.5)) 
# 最后添加一个全连接+softmax激活,输出10个分类,分别对应0-9 这10个数字
model.add(Dense(10, activation='softmax'))# 编译上述构建好的神经网络模型
# 指定优化器为 rmsprop
# 制定损失函数为交叉熵损失
model.compile(optimizer='rmsprop',loss='categorical_crossentropy',metrics=['accuracy'])# 开始训练              
model.fit(X_train, y_train, # 指定训练特征集和训练标签集validation_split = 0.3, # 部分训练集数据拆分成验证集epochs=5, # 训练轮次为5轮batch_size=128) # 以128为批量进行训练# 在测试集上进行模型评估
score = model.evaluate(X_test, y_test) 
print('测试集预测准确率:', score[1]) # 打印测试集上的预测准确率# 预测验证集第一个数据
pred = model.predict(X_test[0].reshape(1, 28, 28, 1)) 
# 把one-hot码转换为数字
print(pred[0],"转换一下格式得到:",pred.argmax())# 导入绘图工具包
import matplotlib.pyplot as plt
# 输出这个图片
plt.imshow(X_test[0].reshape(28, 28),cmap='Greys')

执行结果:

🌈我的分享也就到此结束啦🌈
如果我的分享也能对你有帮助,那就太好了!
若有不足,还请大家多多指正,我们一起学习交流!
📢未来的富豪们:点赞👍→收藏⭐→关注🔍,如果能评论下就太惊喜了!
感谢大家的观看和支持!最后,☺祝愿大家每天有钱赚!!!欢迎关注、关注!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/540816.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何优化淘宝直播 PC 推流端性能

基于 Electron 的淘宝直播 PC 推流端已经上线一年多,期间迭代了很多功能,应用也越来越庞大。自上线以来也收到一些用户反馈应用启动慢、打开推流页面慢、运行过程页面交互操作卡、推流画面卡、CPU 占用过高等性能问题。针对这些问题,我们要怎…

19.ADC模数转换器知识点+AD单通道AD多通道应用程序示例

0. 江协科技/江科大-STM32标准库开发-各章节详细笔记-查阅传送门_江协科技stm32笔记-CSDN博客文章浏览阅读2.9k次,点赞44次,收藏128次。江协科技/江科大-STM32标准库开发-各章节详细笔记-传送门至各个章节笔记。基本上课程讲的每句都详细记录&#xff0c…

前端工程化(一)(精品、面试必备基础)(春招、秋招)

目录 Node.js 开发Node.js 是什么?Node 的应用场景Node 安装和管理Node 的版本工具 JavaScript 代码执行Node 的输入和输出输入输出 Node程序传递参数Node 的 REPLNode 的全局对象 Node.js 开发 Node.js 是什么? Node.js是一个基于V8 JavaScript引擎的JavaScript 运行时环境…

DVWA 靶场搭建

文章目录 环境说明1 DVWA 简介2 DVWA 安装 环境说明 操作系统:Windows 10PHPStudy 版本: 8.1.1.3Apache 版本:2.4.39MySQL 版本 5.7.26 1 DVWA 简介 DVWA(Damn Vulnerable Web App)是一个基于 “PHP MySQL” 搭建的Web应用程序&…

Java基础—JAVA类的生命周期问题

1.JDK与JRE的作用 当我们编写Java程序时,我们实际上是在使用一种高级编程语言,而计算机最终需要将这些高级语言转换成机器语言才能执行。在这个过程中,Java开发工具包(JDK)和Java运行时环境(JRE&#xff0…

VR全景看房:超越传统的看房方式

近年来,新兴技术不断涌出,例如大数据、VR全景、人工智能、元宇宙等。随着科技不断发展,VR全景技术在房地产行业中的应用也是越发广泛,逐渐超越了传统的看房方式。今天,就让我们一起来深入探讨一下VR全景技术在VR看房中…

Weblogic 常规渗透测试环境

测试环境 本环境模拟了一个真实的weblogic环境,其后台存在一个弱口令,并且前台存在任意文件读取漏洞。分别通过这两种漏洞,模拟对weblogic场景的渗透。 Weblogic版本:10.3.6(11g) Java版本:1.6 弱口令 环境启动后…

一行代码极速部署:打造面向开发者的流计算平台

作者:Yingjun Wu TL;DR. curl https://risingwave.com/sh | sh在2021年初,我创立了RisingWave,目标是推广流计算技术的普及。在过去的三年中,我不断的向市场布道RisingWave,希望RisingWave能够在流计算这一市场中占…

【编程语言】C#语言相关知识

前言:我们在游戏开发的过程中,往往会通过游戏引擎结合编程语言的方式,来作为项目开发的手段。因此,了解相关语言的特性、发展和前沿知识,就显得相当必要。笔者这里结合自身的工作经验和学习心得,用简洁通俗…

springboot272车辆管理系统

基于SSM的车辆管理系统的设计与实现 摘要 当下,正处于信息化的时代,许多行业顺应时代的变化,结合使用计算机技术向数字化、信息化建设迈进。以前企业对于车辆信息的管理和控制,采用人工登记的方式保存相关数据,这种以…

HarmonyOS NEXT星河版——还是Android上套个壳吗?

这真的是我2024年听过最搞笑的话,就在前几天,居然还有人说鸿蒙OS就是安卓套个壳,简直无语! 你敢相信?就在前几天,我还听到有人说:鸿蒙os就是安卓上套一个壳。唉,我真是无语了。 哎&#xff0c…

docker容器启动rabbitmq

docker容器启动rabbitmq 一、RabbitMQ部署1.1.在线拉取mq镜像1.2.运行mq容器1.3.访问mq 二、RabbitMQ的集群2.1.集群分类2.1.设置 /etc/hosts文件 endl 一、RabbitMQ部署 1.1.在线拉取mq镜像 # 在线拉取 docker pull rabbitmq:3-management1.2.运行mq容器 docker run \ -e R…