当前位置: 首页 > news >正文

从〇开始深度学习(0)——背景知识与环境配置

从〇开始深度学习(0)——背景知识与环境配置

文章目录

  • 从〇开始深度学习(0)——背景知识与环境配置
    • 写在前面
    • 1.背景知识
      • 1.1.Pytorch
      • 1.2.Anaconda
      • 1.3.Pycharm
      • 1.4.CPU与GPU
      • 1.5.整体关系
    • 2.环境配置
      • 2.1.准备工作
        • 2.1.1.判断有无英伟达显卡
        • 2.1.2.清理电脑里的旧环境
      • 2.1.安装Anaconda
      • 2.2.安装Pytorch
        • 2.2.1.CPU版
        • 2.2.2.GPU版
          • 支线剧情:安装CUDA
          • 主线剧情:安装PyTorch
      • 2.3.安装PyCharm、配置环境
      • 2.4.(可选)汉化PyCharm
      • 2.5.(可选)配置PyCharm终端

写在前面

学习之前从未接触过的领域,总是充满未知和挑战。我可以从很多教程学习我该“做什么”,但是很少有教程可以讲清楚“为什么”。希望通过这篇笔记,可以让和我一样“有编程基础,但不多”的小白,也可以轻松了解深度学习相关知识,并在脑海里构建出学习框架。

笔记分类:

1.背景知识

1.1.Pytorch

在Python中,有很多功能强大的库。这些库为我们封装好了很多功能强大的方法和函数,我们可以站在前人的肩膀上开发我们自己的项目。Pytorch也是如此,完全可以把它看作是一个大的python库。

1.2.Anaconda

在初学Python时,我们往往是在Python官网下载某版本的Python然后编程。但是这种方式存在一个弊端:别人开发的Python工程可能与自己的Python版本不同,此时若想运行别人的工程,则需要重新在官网下载相应版本的Python并配置环境变量。如此一来,我们可能需要频繁地修改本地Python环境。

Anaconda便是一个用于管理Python环境的工具。Anaconda会配置不同的虚拟环境,与我们在本地配置的环境不同,本地环境无法同时配置不同的Python版本,而虚拟环境可以“同时”配置多个不同环境,可以随时按需切换。在不同环境中,可以按需安装不同的库。这样对应不同的工程,我们可以更清晰地区分环境,可以更直观地进行工程管理。

1.3.Pycharm

Pycharm是Jetbrains的一款Python编译器,用过CLion和IDEA的朋友应该都可以很轻松上手Pycharm。Pycharm分为社区版和专业版,社区版是开源免费使用,专业版需要购买,或经过Jetbrains的学生认证后可以免费使用(可以免费使用Jetbrains全家桶,不仅Pycharm专业版)。如果对IDEA的使用也有需求,推荐使用Jetbrains Toolbox进行IDE的统一管理。

Pycharm也可以配置虚拟环境。我们可以不用Anaconda的虚拟环境,直接在Pycharm中配置虚拟环境,下载不同版本的Python;我们也可以在Pycharm中选择Anaconda配置的不同虚拟环境,或是直接选择本地配置的环境。

1.4.CPU与GPU

一般来讲,深度学习的程序用GPU跑更好。与CPU相比,GPU的运算能力更强,且有并行处理能力。

Pytorch分为CPU和GPU两个版本,CPU版本所有设备均可以使用,有英伟达显卡的设备才可以使用GPU版本的Pytorch,且显卡最好拥有>=6GB的显存。

1.5.整体关系

在之后的学习中,我会用Anaconda配置Python+Pytorch环境(其中Pytorch在本地和云服务器均选择GPU版本),使用Pycharm Professional进行编程。计划先在本地环境学习Pytorch,然后在云服务器跑其他算法。

2.环境配置

目标:Anaconda+PyTorch+Pycharm

推荐课程:最详细的 Windows 下 PyTorch 入门深度学习环境安装与配置 CPU GPU 版 | 土堆教程_哔哩哔哩_bilibili

2.1.准备工作

2.1.1.判断有无英伟达显卡

打开任务管理器,找到性能——GPU:

image-20240115095243217
image-20241122101132459

即可知道自己是什么显卡。只有英伟达的显卡才可以使用GPU版Pytorch,且显存最好>=6GB。上图说明没有英伟达显卡,只能使用CPU版PyTorch;下图有英伟达显卡,显存8GB,可以使用GPU版PyTorch。

2.1.2.清理电脑里的旧环境

推荐视频:Python深度学习:安装Anaconda、PyTorch(GPU版)库与PyCharm_哔哩哔哩_bilibili,P1

在此之前,可能有的读者学习过Python。我们需要把之前的环境都清理干净,重新配置新环境。下载一个名为Everything的小工具,启动后等待20秒初始化。

在Everything中搜索Uninstall-Anaconda ,这是Anaconda的卸载程序。如果之前下载过Anaconda,可以通过此程序卸载。

在Everything中搜索.condarc、jupyter、 ipython、 continuum、 matplotlib、 anaconda 以及 conda 的文件,仅删除C盘中的即可。

打开系统环境变量,将Python路径从Path中移除,否则可能会在后续安装Anaconda时无法配置Anaconda的环境变量。

image-20241122102133759

2.1.安装Anaconda

打开Anaconda官网,输入邮箱,会给你发过去下载链接。然后点击Download即可直接进行下载:

image-20241122102348533

当然,也可以[下载](Anaconda Distribution release notes — Anaconda documentation)较旧版本的Anaconda以获取更好的稳定性:

image-20241122102532229

如果你不知道自己的windows是多少位,可以打开系统设置进行查看:

image-20241122102610089

然后下载对应版本即可。

安装Anaconda比较简单。安装在C盘D盘都可以,要留出足够的空间。**且不论安装到什么地方,都要记住这个安装路径,一会需要配置环境变量!**在安装老版本时可能遇到下图的选项卡,如果勾选了第一个选项卡,则会将 Anaconda3 添加到系统 PATH 环境变量中,显然官方也Not recommended,不勾即可。只勾选第二个选项卡,然后安装即可。

image-20240115103341583

现版本的Anaconda安装是这样:

image-20241122103122598

安装过程比较漫长,我在安装时进度条卡在90%约20分钟,耐心等待安装即可。

我们再次打开环境变量,将Anaconda添加到系统环境变量中(注意不是用户变量)。找到系统变量——Path——编辑,将...\Anaconda...\Anaconda\Scripts...\Anaconda\Library\bin 添加到Path中即可(...为刚刚Anaconda的安装路径)。

我们可以把“Jupyter Notebook (Anaconda)”和“Anaconda Prompt (Anaconda)”添加到桌面快捷方式。打开开始,从最近添加中找到Anaconda,右键单击,选择更多,然后打开文件位置:

image-20240115104132972

打开后如图所示:

image-20240115104410858

把第三个(Anaconda Prompt (Anaconda))和第四个(Jupyter Notebook (Anaconda)),右键单击,选择发送到——桌面快捷方式即可。第二个(Anaconda Powershell Prompt (Anaconda))和第三个功能差不多,第二个的功能更加强大,但是我们日常使用第三个已经足够了。具体是用第二个还是第三个,看个人喜好即可。第一个(Anaconda Navigator (Anaconda))是Anaconda的图形界面,可以直观看到自己的虚拟环境,缺点是在图形界面里进行安装包之类的操作会有些慢,看个人喜好,也可以添加到桌面快捷方式。

打开Prompt,默认是在Anaconda的base环境下。这个环境是安装Anaconda时就配置好的,无需额外配置。我们一般会自己创建新的虚拟环境,常用指令如下:

# 清屏
cls
# base 环境下的操作
## 列出所有的环境
conda env list
## 创建名为“环境名” 的虚拟环境,并指定 Python 的版本
conda create -n 环境名 python=3.9
## 删除名为“环境名” 的虚拟环境
conda remove -n 环境名 --all
## 进入名为“环境名”的虚拟环境
conda activate 环境名
# 虚拟环境内的操作
## 列出当前环境下的所有库
conda list
## 安装 NumPy 库,并指定版本 1.21.5
pip install numpy==1.21.5 -i https://pypi.tuna.tsinghua.edu.cn/simple
## 安装 Pandas 库,并指定版本 1.2.4
pip install Pandas==1.2.4 -i https://pypi.tuna.tsinghua.edu.cn/simple
## 安装 Matplotlib 库,并指定版本 3.5.1
pip install Matplotlib==3.5.1 -i https://pypi.tuna.tsinghua.edu.cn/simple
## 查看当前环境下某个库的版本(以 numpy 为例)
pip show numpy
## 退出虚拟环境
conda deactivate

如果你有过Python学习的基础,或者是细心观察了刚刚的常用指令,会发现我们是从清华源下载各种包。默认情况下,Anaconda都是从国外服务器下载包,而由于众所周知的原因,这样下载往往比较慢,所以我们会换源下载。

在Anaconda Prompt命令行中输入指令conda config --get,即可看到我们默认下载途径是defaults

image-20240115114057049

如果我们在创建虚拟环境时,直接指定下载源(下载通道channels),那在后续的下载中就不用每条指令都进行换源了:

## 创建名为“环境名” 的虚拟环境,并指定 Python 的版本,并指定下载源
conda create -n 环境名 python=3.9 -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main

但是还是更推荐不更改默认下载地址,推荐使用刚刚这种方式:

## 安装 NumPy 库,并指定版本 1.21.5
pip install numpy==1.21.5 -i https://pypi.tuna.tsinghua.edu.cn/simple

更改默认地址后,有时会出现奇怪的错误。所以还是每次下载单独指定即可。

2.2.安装Pytorch

2.2.1.CPU版

注:这部分笔记时间为2024年02月,可能现在的安装过程会有小区别。

进入Pytorch官网,往下翻,找到这个表格:

image-20240115115822553

笔者选择的是稳定版、windows、Conda(也可以选择Pip)、CPU版本,可以看到为我们生成了下载命令:

conda install pytorch torchvision torchaudio cpuonly -c pytorch

我们进入Anaconda Prompt命令行,创建一个虚拟环境,命令如下:

conda create -n 环境名 python=3.9

进入该环境:

conda activate 环境名
image-20240115121229770

然后运行刚刚从网站上复制的指令:

conda install pytorch torchvision torchaudio cpuonly -c pytorch

推荐科学上网,或者换源下载。下载完成后,再检查一下:

conda list

如果安装成功的话,列表会显示pytorch。如下所示:

image-20240115123449465

安装成功。

下面验证一下Pytorch能否被Python调用。在命令行输入:

python

如果已经成功激活Python解释器,会有三个>>>的标志,如下所示:

image-20240115173254629

再在命令行输入:

import torch
torch.cuda.is_available()

如果显示False,则Pytorch的CPU版本已经安装成功了:

image-20240115173616930

需要注意的是,import的是torch而非pytorch,函数torch.cuda.is_available()记得括号。

2.2.2.GPU版

英伟达显卡的运算平台是CUDA,PyTorch的下载组件中含有cudatoolkit,是CUDA的子集。一般要满足CUDA版本>cudatoolkit版本。

打开CMD命令行,输入:

nvcc -V

如果你已经安装了CUDA则会显示版本号,如果显示:

image-20241122131338082

那就进入支线剧情了:安装CUDA。如果不需要,则可以直接跳过,看主线剧情。

支线剧情:安装CUDA

在CMD命令行中输入:

nvidia-smi.exe
image-20241122134202316

这个版本是你的显卡所支持的最高版本的CUDA!

进入CUDA Toolkit - Free Tools and Training | NVIDIA Developer,可以直接下载最新版:

image-20241122131838926

也可以进入CUDA Toolkit Archive | NVIDIA Developer下载老版:

image-20241122131915550

进入Pytorch官网,往下翻,找到这个表格:

image-20241122132154171

所以我选择下载12.4.1版本CUDA,跳转后选择如下:

image-20241122132401377

Version是你Windows版本。然后点击下载即可,这里下载的过程会比较久,耐心等待即可。

下载完毕,双击安装,我选择的安装路径如下:

image-20241122134947373

安装过程需要注意的点:

image-20241122140038391
image-20241122140255523

在选择组件时,我仅勾选了我电脑上没有的组件、我电脑有但是版本落后的组件,如上图所示。然后在CUDA中取消VS,如下所示:

image-20241122140354905

如果你电脑上有VS,可以勾选;如果没有,一定不要勾选

选择安装位置:

image-20241122140829667

然后等待安装即可。安装完关闭窗口,回到CMD命令行,重新输入:

nvcc -V
image-20241122141217590

至此,完成CUDA安装。

有些教程还包括安装cudnn,实际上并不需要,PyTorch本身就包含了cudnn。

主线剧情:安装PyTorch

笔者选择的是稳定版、windows、Conda(也可以选择Pip)、CUDA12.4版本,可以看到为我们生成了下载命令:

conda install pytorch torchvision torchaudio pytorch-cuda=12.4 -c pytorch -c nvidia

我们进入Anaconda Prompt命令行,创建一个虚拟环境,命令如下:

conda create -n 环境名 python=3.9

进入该环境:

conda activate 环境名
image-20240115121229770

然后运行刚刚从网站上复制的指令:

conda install pytorch torchvision torchaudio pytorch-cuda=12.4 -c pytorch -c nvidia

推荐科学上网,或者换源下载。若换源,则输入:

conda install pytorch torchvision torchaudio pytorch-cuda=12.4 -c nvidia -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/win-64/

下载完成后,再检查一下:

conda list

如果安装成功的话,列表会显示pytorch。如下所示:

image-20241122153756784

安装成功。

下面验证一下Pytorch能否被Python调用。在命令行输入:

python

如果已经成功激活Python解释器,会有三个>>>的标志,如下所示:

image-20240115173254629

再在命令行输入:

import torch
torch.cuda.is_available()

如果显示True,则Pytorch的GPU版本已经安装成功了:

image-20241122153853528

需要注意的是,import的是torch而非pytorch,函数torch.cuda.is_available()记得括号。

原谅我的懒惰,配GPU版的时候直接用了几个CPU版的图,但是无伤大雅,不耽误理解,不耽误配置

这个win11的UI是好看哈

2.3.安装PyCharm、配置环境

在Pycharm官网进行下载,分为Professional和Community Edition。可以通过购买或进行学生认证的方式使用Professional版本,当然免费的Community Edition也足够用,自行选择进行下载。当然,也可以下载一个JetBrains Toolbox,对Jetbrains的开发工具进行统一管理。不论是哪种方式,下载安装都非常简单,速度也很快。

打开Pycharm,新建一个工程。先在Location(位置)输入工程保存的地址,注意地址要全英文:

image-20240115175125605

需要注意的是,以上图为例,E:\PythonStudy是你电脑种已有的文件夹,test0是你的工程名称。然后选择Python解释器,我们选择下面的方式:

image-20240115175158948

点击添加解释器:

image-20240115175223755

然后输入路径...\Anaconda\Scripts\conda.exe,其中...为Anaconda的安装路径。在使用现有环境中,选择刚刚创建好的环境:

image-20240115190851614

新版Pycharm配置方式如下:

image-20241122150500389

其中,Git repository是可选项,不勾也完全没问题。

有些版本的Pycharm可能还要配置Python解释器,Python解释器的路径为...\Anaconda\envs\PytorchStudy\python.exe,其中...为Anaconda的安装路径。**不要搞混了Conda可执行文件和Python解释器,二者不是一个东西,路径也不一样。**确定后即可创建:

image-20240115191740203

更换main.py中的代码:

import torch
print(torch.cuda.is_available())

点击运行,如果你是CPU版的PyTorch会输出:

image-20240115195708806

GPU版的PyTorch会输出:

image-20241122154453911

环境配置完毕。

2.4.(可选)汉化PyCharm

PyCharm的汉化方法与Jetbrains其他产品的汉化方法相同。点击File(文件)——Settings(设置)——Plugins(插件),搜索Chinese,找到标志为的插件,下载并应用即可。当然,汉化并非必须选择的。

image-20240115201552278

2.5.(可选)配置PyCharm终端

备注:这个方法我在2024年01月配置过没问题,但是2024年11月配置的时候出现问题,具体原因未知,可能是某些版本变化导致的。

Pycharm其实也可以直接打开终端,如果我们想打开Anaconda的命令行,则需要进行额外的配置。

首先,找到Anaconda Prompt (Anaconda)所在位置:

image-20240115202304030

在文件夹中,再右键——属性:

image-20240115202522831

如下所示:

image-20240115202554840

复制路径如下:

C:\Windows\System32\cmd.exe

点击文件(File)——设置(Settings)——工具(Tools)——终端(Terminal),将Shell路径修改为刚刚复制的路径:

image-20240115202733734

再打开终端,如下所示:

image-20240115202822965

这样我们就可以很方便地在Pycharm中输入命令,无需额外打开窗口了。

相关文章:

从〇开始深度学习(0)——背景知识与环境配置

从〇开始深度学习(0)——背景知识与环境配置 文章目录 从〇开始深度学习(0)——背景知识与环境配置写在前面1.背景知识1.1.Pytorch1.2.Anaconda1.3.Pycharm1.4.CPU与GPU1.5.整体关系 2.环境配置2.1.准备工作2.1.1.判断有无英伟达显卡2.1.2.清理电脑里的旧环境 2.1.安装Anaconda…...

【NLP 2、机器学习简介】

人生的苦难不过伏尔加河上的纤夫 —— 24.11.27 一、机器学习起源 机器学习的本质 —— 找规律 通过一定量的训练样本找到这些数据样本中所蕴含的规律 规律愈发复杂,机器学习就是在其中找到这些的规律,挖掘规律建立一个公式,导致对陌生的数…...

多目标优化算法——多目标粒子群优化算法(MOPSO)

Handling Multiple Objectives With Particle Swarm Optimization(多目标粒子群优化算法) 一、摘要: 本文提出了一种将帕累托优势引入粒子群优化算法的方法,使该算法能够处理具有多个目标函数的问题。与目前其他将粒子群算法扩展…...

Edify 3D: Scalable High-Quality 3D Asset Generation

Deep Imagination Research | NVIDIA 目录 一、Abstract 二、核心内容 1、多视图扩散模型 3、重建模型: 4、数据处理模块: 三、结果 1、文本到 3D 生成结果 2、图像到 3D 生成结果 3、四边形网格拓扑结构 一、Abstract NVIDIA 开发的用于高质量…...

探索校企合作新模式:职业院校大数据专业实验(实训)室建设指南

一、引言 作为一种强大的信息处理与分析工具,大数据技术在企业管理、科研探索、社会治理等多个领域均产生了广泛而深远的影响。在此背景下,大数据实验室的建设显得尤为重要,而校企合作则为这一建设提供了坚实的支撑。学校借助企业资源&#…...

YOLO的框架及版本迭代

YOLO(You Only Look Once)是一种非常流行的实时目标检测算法,其特点是将目标检测任务转换为一个回归问题,通过一次前向传播就可以同时完成目标的分类和定位。以下是YOLO框架的整体架构和工作原理: 一、YOLO的基本框架…...

第四十篇 DDP模型并行

摘要 分布式数据并行(DDP)技术是深度学习领域中的一项重要技术,它通过将数据和计算任务分布在多个计算节点上,实现了大规模模型的并行训练。 DDP技术的基本原理是将数据和模型参数分割成多个部分,每个部分由一个计算节点负责处理。在训练过程中,每个节点独立计算梯度,…...

鸿蒙进阶篇-状态管理之@Provide与@Consume

大家好,这里是鸿蒙开天组,今天我们来学习一下状态管理中的Provide与Consume。 一、概述 嘿!大家还记得这张图吗?不记得也要记得哦,因为这张图里的东西,既是高频必考面试题,也是实际开发中&…...

鸿蒙本地模拟器 模拟TCP服务端的过程

鸿蒙模拟器模拟TCP服务端的过程涉及几个关键步骤,主要包括创建TCPSocketServer实例、绑定IP地址和端口、监听连接请求、接收和发送数据以及处理连接事件。以下是详细的模拟过程: **1.创建TCPSocketServer实例:**首先,需要导入鸿蒙…...

Qt程序发布及打包成exe安装包

参考:Qt之程序发布以及打包成exe安装包 目录 一、简述 Qt 项目开发完成之后,需要打包发布程序,而因为用户电脑上没有 Qt 配置环境,所以需要将 release 生成的 exe 文件和所依赖的 dll 文件复制到一个文件夹中,然后再用 Inno Setup 打包工具打包成一个 exe 安装包,就可以…...

Spring Boot + ActiveMQ Artemis:快速实现高效消息队列处理功能

在现代微服务架构中,消息队列是实现异步通信、解耦系统的重要手段。而通过 Spring Boot 和 ActiveMQ Artemis,您可以快速搭建一个高效、可靠的消息队列处理系统,轻松应对订单处理、日志分析等场景。本文将带您从零开始,逐步实现一…...

【FPGA-MicroBlaze】串口收发以及相关函数讲解

前言 工具:Vivado2018.3及其所对应的SDK版本 目前网上有许多MicroBlaze 的入门教程,比如下面的这个参考文章,用串口打印一个hello world。 【FPGA】Xilinx MicroBlaze软核使用第一节:Hello World!_fpga软核microblaze-CSDN博客 个…...

CGAL CGAL::Polygon_mesh_processing::self_intersections解析

CGAL::Polygon_mesh_processing::self_intersections 是用于检测多边形网格(Polygon Mesh)中的自相交的函数。自相交是指网格中的某些面(例如三角形)与同一网格中的其他面交叉的情况。这种情况通常是不期望的,因为它会…...

猎户星空发布MoE大模型,推出AI数据宝AirDS

发布 | 大力财经 11月27日,猎户星空联合聚云科技举办了题为《Data Ready for Al,MoE大模型发布暨商业闭环分享》媒体见面会。猎户星空正式发布了自主研发的Orion-MoE 87B大模型,并携手聚云科技推出了基于该大模型的数据服务—AI数据宝AirDS&a…...

什么是JSON,有什么特点

什么是 JSON? JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。它基于 JavaScript 的子集,但独立于语言,被广泛用于服务器与 Web 应…...

SQL注入SQL盲注

SQL注入(SQL Injection)和 SQL盲注(Blind SQL Injection)是两种常见的Web安全攻击技术,用于攻击应用程序并操纵其与数据库的交互。以下是两者的概念和区别: 1. SQL注入 定义: SQL注入是通过将…...

汽车轮毂结构分析有哪些?国产3D仿真分析实现静力学+模态分析

本文为CAD芯智库原创,未经允许请勿复制、转载! 之前分享了如何通过国产三维CAD软件如何实现「汽车/汽配行业产品设计」,兼容NX(UG)、Creo(Proe),轻松降低企业上下游图纸交互成本等。…...

C++设计模式之组合模式在解决层次性问题中的好处

采用组合模式在处理层次型问题时,会带来以下重要好处: 简化客户端操作: 客户端代码可以统一地处理单个对象和组合对象,而无需区分它们。这意味着客户端可以使用相同的操作来对待所有对象,无论它们是简单的叶子节点还是…...

基于大数据爬虫+SpringBoot+Hive的网络电视剧收视率分析与可视化平台系统(源码+论文+PPT+部署文档教程等)

博主介绍:CSDN毕设辅导第一人、全网粉丝50W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行前辈交流✌ 技术范围:SpringB…...

【ESP32CAM+Android+C#上位机】ESP32-CAM在STA或AP模式下基于UDP与手机APP或C#上位机进行视频流/图像传输

前言: 本项目实现ESP32-CAM在STA或AP模式下基于UDP与手机APP或C#上位机进行视频流/图像传输。本项目包含有ESP32源码(arduino)、Android手机APP源码以及C#上位机源码,本文对其工程项目的配置使用进行讲解。实战开发,亲测无误。 AP模式,就是ESP32发出一个WIFI/热点提供给电…...

️ 如何优化爬虫程序以提高抓取效率?

在开发爬虫程序时,提高抓取效率是至关重要的。以下是一些常见的性能优化策略,可以帮助你优化Java爬虫程序: 多线程与分布式抓取: 利用多线程技术可以显著提高爬虫的抓取速度。例如,在WebMagic中,可以通过配…...

深入理解 MySQL 锁机制:分类、实现与优化

在高并发的数据库应用中,锁机制是保障事务在操作数据库时数据一致性和完整性的重要工具。MySQL 提供了多种类型的锁,不同的存储引擎和场景下的实现各具特点。本篇文章将详细介绍 MySQL 锁的分类、实现(主动与被动)以及优化策略。 …...

python-docx -- 读取word页眉、页脚

文章目录 sections介绍访问section添加section页眉、页脚综合案例:sections介绍 word支持section的概念,即一个文档的划分部分,不同的部分均包含相同的页面布局设置,如相同的边距、页面方向等;在每个section中可以定义页眉、页脚来应用于该section下的所有页面;大部分wor…...

DRM(数字权限管理技术)防截屏录屏----ffmpeg安装

提示:ffmpeg安装 文章目录 [TOC](文章目录) 前言一、下载二、配置环境变量三、运行ffmpeg四、文档总结 前言 FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的…...

【Linux 篇】Docker 启动和停止的精准掌舵:操控指南

文章目录 【Linux 篇】Docker 启动和停止的精准掌舵:操控指南前言docker基本命令1. 帮助手册 2. 指令介绍 常用命令1. 查看镜像2. 搜索镜像3. 拉取镜像4. 删除镜像5. 从Docker Hub拉取 容器的相关命令1. 查看容器2. 创建与启动容器3. 查看镜像4. 启动容器5. 查看容…...

【电路设计】基于CD4511的八路抢答器电路解析

文章目录 0 前言1 CD45112 电路解析3 锁存分析4 电路优化思考5 总结 0 前言 最近收拾东西的时候找到了本科阶段学电路焊接时焊的一个八路抢答器的电路板,如下图所示。 一共有9个按键,左侧8个为抢答按键,依次对应1-8,按下之后会有…...

Python 爬虫入门教程:从零构建你的第一个网络爬虫

网络爬虫是一种自动化程序,用于从网站抓取数据。Python 凭借其丰富的库和简单的语法,是构建网络爬虫的理想语言。本文将带你从零开始学习 Python 爬虫的基本知识,并实现一个简单的爬虫项目。 1. 什么是网络爬虫? 网络爬虫&#x…...

2024年11月27日Github流行趋势

项目名称:screenshot-to-code 项目维护者:abi clean99 sweep-ai kachbit vagusX项目介绍:通过上传截图将其转换为整洁的代码(支持HTML/Tailwind/React/Vue)。项目star数:62,429项目fork数:7,614…...

深入浅出摸透AIGC文生图产品SD(Stable Diffusion)

hihi,朋友们,时隔半年(24年11月),终于能腾出时间唠一唠SD了🤣,真怕再不唠一唠,就轮不到SD了,技术更新换代是在是太快! 朋友们,最近(24年2月)是真的没时间整理笔记,每天都在疯狂的学习Stable Diffusion和WebUI & ComfyUI,工作实在有点忙,实践期间在飞书上…...

thinkphp日志记录到文件

日志 //控制器中 //这种方法调用的话,在general_technology下按照日期写入日志 LogService::requestLog(general_technology,$this->baseUrl .$url,$params,$res); LogService::responseLog(general_technology/hebei_product_add_error, $syncData,$msg); LogSe…...

WPF ItemsControl控件

ItemsControl 是 WPF 中一个非常灵活的控件,用于显示一组数据项。它是一个基类,许多其他控件(如 ListBox, ListView, ComboBox 等)都是从 ItemsControl 继承而来。ItemsControl 的主要特点是它可以自定义数据项的显示方式&#xf…...

【Android+多线程】IntentService 知识总结:应用场景 / 使用步骤 / 源码分析

定义 IntentService 是 Android中的一个封装类,继承自四大组件之一的Service 功能 处理异步请求 & 实现多线程 应用场景 线程任务 需 按顺序、在后台执行 最常见的场景:离线下载不符合多个数据同时请求的场景:所有的任务都在同一个T…...

编译 LLVM 源码,使用 Clion 调试 clang

版权归作者所有,如有转发,请注明文章出处:https://cyrus-studio.github.io/blog/ 1. LLVM 简介 LLVM 是一个开源的编译器基础架构,最初由 Chris Lattner 于 2000 年在伊利诺伊大学开发,后来成为一个广泛应用于编译器和…...

ssm199旅游景点管理系统设计+jsp(论文+源码)_kaic

毕 业 设 计(论 文) 题目:旅游景点管理系统设计与实现 摘 要 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本旅游景点管理系统…...

在英文科技论文中分号后面的单词首字母需不需要大写

英文科技论文中分号后面的单词首字母需不需要大写 分号后完整句子的首字母规则:1. **首字母不大写**:2. **专有名词大写**:3. **特殊上下文**: 在分号后,即使后面是一个完整的句子(包含主语和谓语&#xff…...

<项目代码>YOLOv8 停车场空位识别<目标检测>

YOLOv8是一种单阶段(one-stage)检测算法,它将目标检测问题转化为一个回归问题,能够在一次前向传播过程中同时完成目标的分类和定位任务。相较于两阶段检测算法(如Faster R-CNN),YOLOv8具有更高的…...

微知-lspci访问到指定的PCIe设备的几种方式?(lspci -s bus;lspci -d devices)

通过bdf号查看 -s (bus) lspci -s 03:00.0通过vendor id或者device id等设备查看 -d (device) lspci -d 15b3: #这里是vendor号,所以在前面 lspci -d :1021 #这里是设备号,所以要:在前vendorid和deviceid…...

《Opencv》基础操作<1>

目录 一、Opencv简介 主要特点: 应用领域: 二、基础操作 1、模块导入 2、图片的读取和显示 (1)、读取 (2)、显示 3、 图片的保存 4、获取图像的基本属性 5、图像转灰度图 6、图像的截取 7、图…...

数据湖的概念(包含数据中台、数据湖、数据仓库、数据集市的区别)--了解数据湖,这一篇就够了

文章目录 一、数据湖概念1、企业对数据的困扰2、什么是数据湖3、数据中台、数据湖、数据仓库、数据集市的区别 网上看了好多有关数据湖的帖子,还有数据中台、数据湖、数据仓库、数据集市的区别的帖子,发现帖子写的都很多,而且专业名词很多&am…...

mysql-分析MVCC原理

一、MVCC简介 MVCC是一种用来解决读写冲读的无锁并发控制,也就是为事务分配单增长的时间戳,为每个修改保存一个版本,版本与事务时间戳关联,读操作只读该事务开始前的数据库的快照,所以MVCC可以为数据库解决一些问题。…...

【拥抱AI】一文讲述如何配置Milvus?

配置Milvus是一个重要的步骤,它可以帮助你更好地管理和优化向量数据库的性能。以下是一些常见的配置选项和步骤,帮助你设置和优化Milvus。 1. 安装Milvus 首先,确保你已经安装了Milvus。你可以使用Docker来快速部署Milvus。以下是一个基本的…...

Python学习35天

# 定义父类 class Computer: CPUNone MemoryNone diskNone def __init__(self,CPU,Memory,disk): self.disk disk self.Memory Memory self.CPU CPU def get_details(self): return f"CPU:{self.CPU}\tdisk:{self.disk}\t…...

Windows环境下搭建Qwen开发环境

1 参考文献 【官方指引】https://qwen.readthedocs.io/en/latest/ 【ModelScope训练】https://modelscope.cn/docs/%E4%BD%BF%E7%94%A8Tuners 【CUDA下载安装教程】https://blog.csdn.net/changyana/article/details/135876568 【安装cuDNN】https://developer.nvidia.com/…...

jenkins 2.346.1最后一个支持java8的版本搭建

1.jenkins下载 下载地址:Index of /war-stable/2.346.1 2.部署 创建目标文件夹,移动到指定位置 创建一个启动脚本,deploy.sh #!/bin/bash set -eDATE$(date %Y%m%d%H%M) # 基础路径 BASE_PATH/opt/projects/jenkins # 服务名称。同时约定部…...

黑马程序员Java项目实战《苍穹外卖》Day01

苍穹外卖-day01 课程内容 软件开发整体介绍苍穹外卖项目介绍开发环境搭建导入接口文档Swagger 项目整体效果展示: ​ 管理端-外卖商家使用 ​ 用户端-点餐用户使用 当我们完成该项目的学习,可以培养以下能力: 1. 软件开发整体介绍 作为一…...

二叉树:堆的建立和应用

在建立堆之前,我们要知道什么是树和二叉树 树 树是一种非线性的数据结构,它是由n(n>0)个结点组成的一个具有层次关系的集合,之所以把它叫做树,是因为它长得像一棵倒挂的树,也就是根在上面&…...

手搓人工智能-最优化算法(1)最速梯度下降法,及推导过程

“Men pass away, but their deeds abide.” 人终有一死,但是他们的业绩将永存。 ——奥古斯坦-路易柯西 目录 前言 简单函数求极值 复杂函数梯度法求极值 泰勒展开 梯度,Nabla算子 Cauchy-Schwarz不等式 梯度下降算法 算法流程 梯度下降法…...

【大数据学习 | Spark-SQL】Spark-SQL编程

上面的是SparkSQL的API操作。 1. 将RDD转化为DataFrame对象 DataFrame: DataFrame是一种以RDD为基础的分布式数据集,类似于传统数据库中的二维表格。带有schema元信息,即DataFrame所表示的二维表数据集的每一列都带有名称和类型。这样的数…...

go+gin+mysql+gorm快速实现增删改查接口

Gin 是一个用 Go (Golang) 编写的轻量级但功能强大的Web框架,具有极高的性能。适合开发API和微服务。 1.安装 Gin 前置任务,首先你本地需要安装过go语言环境 go get -u github.com/gin-gonic/gin这里直接结合项目代码解析gin的主要功能: …...

【国产MCU】-GD32F470-串行外设接口(SPI)

串行外设接口(SPI) 文章目录 串行外设接口(SPI)1、SPI介绍1.1 SPI特性1.2 SPI信号1.3 SPI 时序和数据帧格式1.4 NSS 功能1.5 SPI运行模式2、SPI控制器寄存器列表3、SPI控制器驱动API介绍4、SPI应用4.1 SPI初始化流程4.2 数据发送与接收串行外设接口(Serial Peripheral Int…...