一张图了解GPU、CUDA、CUDA toolkit和pytorch的关系

news2024/11/17 22:42:46

文章目录

      • GPU、Cuda Driver和 Cuda Toolkit的图解关系
        • 省流,简略版本
        • 要实现多版本的cuda怎么办
      • 复杂版(你要是觉得简略版说的太简单,这里给你找文档证明)
        • 一、Nvidia Driver和CUDA Toolkit的关系
          • 安装GPU显卡驱动Nvidia Driver
        • 二、CUDA Toolkit是真的不包含CUDNN的
          • CUDA Toolkit的组件内容
        • 三、CUDA Toolkit从Nvidia下载的,是真的包含了驱动的
          • 证明1
          • 证明2
          • 证明3
          • CUDA Toolkit安装
        • 四、你还是要单独装一下CUDNN的,不然回报错
          • 不装CUDNN的报错如下
          • 安装CUDNN
        • 五、如何实现多版本的CUDA?
          • linux下CUDA和CUDNN安装
            • CUDA安装
            • CUDNN的安装
            • pytorch安装
        • 问题
          • 离谱,conda永远不成功,venv一下子就成功了
        • 七、卸载系列
          • 卸载Nvidia Driver和CUDA
          • 卸载conda
      • 总结
      • 参考

GPU、Cuda Driver和 Cuda Toolkit的图解关系

在这里插入图片描述

省流,简略版本

  • Nvidia Driver驱动:操作系统和硬件GPU进行沟通交互的程序,没这个驱动,GPU就是一个摆设,调用不起来,所以得先装这个。装了这个电脑就能用GPU了,但是深度学习搞不定。
  • CUDA Toolkit工具包:是基于驱动程序,用来实现GPU并行计算和加速深度学习的软件包。通过这个软件包,调用驱动,实现更加高级的功能。
  • cudnn深度学习加速库:是专门针对深度学习的GPU加速库,如果你要使用深度学习框架,这个是必需的。虽然也是CUDA Toolkit的组件,但是官方的下载包里面并没有,需要自己额外下载。
  • pytorch,tensorflow深度学习框架:CUDA Toolkit并没有提供深度学习的框架,只是提供了如何高效调用GPU的软件库。如果你要创建深度学习模型,进行训练。还是要使用深度学习框架。
  • Nvidia官方下载的CUDA:官方下载的CUDA Toolkit是包含了驱动的,并且联合到一块是称为CUDA的。
  • conda下载的CUDA:是不包含驱动的,但是高版本的驱动,是向前兼容的,你可以下载相匹配的cuda toolkit,构成不同版本的cuda

要实现多版本的cuda怎么办

在这里插入图片描述

  • 说明
    • 只需要安装不同版本的cuda toolkit即可

复杂版(你要是觉得简略版说的太简单,这里给你找文档证明)

一、Nvidia Driver和CUDA Toolkit的关系

  • 下图是从官网找到的对应表格,链接

在这里插入图片描述

  • 说明
    • CUDA Driver是向前兼容的,就是后续的开发的新版本,是支持前面的cuda toolkit的。
    • 根据表格可以看出,安装的驱动尽可能新
    • CUDA Toolkit和驱动兼容,只需要满足最低版本就行
  • 安装建议
    • 虽然官方的cuda都是包含了驱动的,如果你想单独安装也行,我就是单独安装的,没看技术文档。
    • 单独安装驱动的链接
安装GPU显卡驱动Nvidia Driver

下载

  • 下载链接
  • 在对应的选框中,选择适合的Nvidia驱动,注意,对于linux而言,这个驱动是包括cuda driver和nvidia driver的。这个是向前兼容的。
    在这里插入图片描述* 点击下载
    在这里插入图片描述
  • ubuntu系统,下载的是run文件

在这里插入图片描述

安装

  • 去除本地已经安装的Nvidia Driver
  • 1、按 ctrl+alt+F1 进入tty, 登录tty后输入如下命令关闭图形界面
sudo service lightdm stop
  • 这里注意要禁用Nouveau
sudo vim /etc/modprobe.d/blacklist.conf
blacklist nouveau
  • 2、卸载nvidia显卡驱动。注意此时千万不能重启,重新电脑可能会导致无法进入系统。
sudo apt-get remove nvidia*
  • 3、安装显卡驱动
sudo sh NVIDIA-Lunix-x86_64-525.105.17.run
  • 在这里,会安装过程中,会遇到一些选项,这里可以直接看这个链接,我是按照这个做的

最后,重启后安装cudnn, 进入解压后的cuda所在的目录。

sudo cp lib* /usr/local/cuda/lib64/
sudo cp cudnn.h /usr/local/cuda/include/
  • 4、进入系统检查是否安装成功
# 查看安装的cuda配置
nvidia-smi
# 启动图形化界面配置
nvidia-settings

在这里插入图片描述
在这里插入图片描述

二、CUDA Toolkit是真的不包含CUDNN的

CUDA Toolkit的组件内容
  • 数据获取链接

在这里插入图片描述
在这里插入图片描述

  • 说明

    • 通过阅读整个表格可以知道,toolkit是包含了nvcc编译器的,但是没有包含cudnn的,所以我们还是需要重新在下载的。
    • cudnn的下载链接,这里记得找相对应的版本

    在这里插入图片描述

    • CUDA Toolkit的下载链接,这里老是让我下载12.1,结果没有版本能带起来,这里给了一个所有版本的下载目录
      在这里插入图片描述

三、CUDA Toolkit从Nvidia下载的,是真的包含了驱动的

证明1
  • 网络链接
  • 下图我是选择了我自己操作的ubuntu系统下载一个toolkit,给你生成的指令,可以看到默认是给你安装了515的驱动,
    在这里插入图片描述
证明2
  • 网络链接
  • 下图红框里是我摘录的原文,中文意思就是为了方便,驱动安装是作为toolkit安装的一部分的。
    在这里插入图片描述
证明3
  • conda 安装是没有驱动的,好吧我没找到,不过找到了别人也是那么认为的,而且我在chatGPT上也问了一下,确实如此。
  • 下图网络链接
    在这里插入图片描述
  • chatGPT的回答内容
    在这里插入图片描述
CUDA Toolkit安装
  • 打开链接,如下

    在这里插入图片描述

  • 选择适合的版本,进行安装。不过一般都是根据你的pytorch进行安装,而且装pytorh的时候,也会让你装cuda
    在这里插入图片描述

  • 官网生成的语句中,除了要求你安装pytorch需要的包,包括pytorch,torchvision,torchaudio三个包。还有一个pytorch-cuda11.7,这是和当前的要安装的pytorch兼容的cuda版本。

  • 这里回归正题,还是从nvidia官网直接下载toolkit,选择你需要的版本,直接进行安装
    在这里插入图片描述

  • 我这里已经安装了驱动,所以需要相应的裁剪一下。只需要装一个toolkit就行了。

四、你还是要单独装一下CUDNN的,不然回报错

不装CUDNN的报错如下

在这里插入图片描述

安装CUDNN
  • 找到官方,链接
  • 找一个适合自己的版本,按照步骤装下来就行了

在这里插入图片描述

五、如何实现多版本的CUDA?

  • 之前看了很多博客,都是基于conda进行安装的,但都是基于windows系统进行的,别的都是使用软链接,下载多个版本,修改系统路径实现的。截图如下,链接
    在这里插入图片描述
  • 别的基本上都是基于window环境的,使用docker之类的,不过这里找到一个自动化脚本,可以直接切换。参考连接
  • 直接将代码放到这里
#!/usr/bin/env bash

# Copyright (c) 2018 Patrick Hohenecker
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in all
# copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
# SOFTWARE.

# author:   Patrick Hohenecker <mail@paho.at>
# version:  2018.1
# date:     May 15, 2018


set -e


# ensure that the script has been sourced rather than just executed
if [[ "${BASH_SOURCE[0]}" = "${0}" ]]; then
    echo "Please use 'source' to execute switch-cuda.sh!"
    exit 1
fi

INSTALL_FOLDER="/usr/local"  # the location to look for CUDA installations at
TARGET_VERSION=${1}          # the target CUDA version to switch to (if provided)

# if no version to switch to has been provided, then just print all available CUDA installations
if [[ -z ${TARGET_VERSION} ]]; then
    echo "The following CUDA installations have been found (in '${INSTALL_FOLDER}'):"
    ls -l "${INSTALL_FOLDER}" | egrep -o "cuda-[0-9]+\\.[0-9]+$" | while read -r line; do
        echo "* ${line}"
    done
    set +e
    return
# otherwise, check whether there is an installation of the requested CUDA version
elif [[ ! -d "${INSTALL_FOLDER}/cuda-${TARGET_VERSION}" ]]; then
    echo "No installation of CUDA ${TARGET_VERSION} has been found!"
    set +e
    return
fi

# the path of the installation to use
cuda_path="${INSTALL_FOLDER}/cuda-${TARGET_VERSION}"

# filter out those CUDA entries from the PATH that are not needed anymore
path_elements=(${PATH//:/ })
new_path="${cuda_path}/bin"
for p in "${path_elements[@]}"; do
    if [[ ! ${p} =~ ^${INSTALL_FOLDER}/cuda ]]; then
        new_path="${new_path}:${p}"
    fi
done

# filter out those CUDA entries from the LD_LIBRARY_PATH that are not needed anymore
ld_path_elements=(${LD_LIBRARY_PATH//:/ })
new_ld_path="${cuda_path}/lib64:${cuda_path}/extras/CUPTI/lib64"
for p in "${ld_path_elements[@]}"; do
    if [[ ! ${p} =~ ^${INSTALL_FOLDER}/cuda ]]; then
        new_ld_path="${new_ld_path}:${p}"
    fi
done

# update environment variables
export CUDA_HOME="${cuda_path}"
export CUDA_ROOT="${cuda_path}"
export LD_LIBRARY_PATH="${new_ld_path}"
export PATH="${new_path}"

echo "Switched to CUDA ${TARGET_VERSION}."

set +e
return

cuda切换的简单方法

  • 修改软链接cuda,具体链接到的cuda文件即可
sudo rm -rf cuda
sudo ln -s /usr/local/cuda-10.1 /usr/local/cuda
linux下CUDA和CUDNN安装
CUDA安装
  • 这里选了本地安装
    在这里插入图片描述
  • 下载完毕
    在这里插入图片描述
  • 进行安装,发现本地的驱动,如果我选择abort会直接跳出安装,所以选择continue
    在这里插入图片描述
  • 后续还有一个选择的选项,去掉了driver,最终的安装结果如下。
  • 本来以为没有的,结果有装错了,重新来了一次
    在这里插入图片描述

在这里插入图片描述

  • 将当前安装而cuda添加到系统路径中,修改所有用户的PATH,这里他说的~/.bashrc,在我的系统中找不到,直接改变了系统变量,参考连接

在这里插入图片描述

  • 修改LD_LIBRARY_PATH,切换到当前用户下的home目录,然后编辑.bashrc文件,将下列文本添加到末尾
export PATH=/usr/local/cuda-11.7/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-11.7/lib64:$LD_LIBRARY_PATH
export CUDA_HOME=$CUDA_HOME:/usr/local/cuda-11.7

在这里插入图片描述

  • 运行如下命令。重置环境,并测试成果
# 切换到当前的用户的home目录下方
cd
source .bashrc
nvcc -V

在这里插入图片描述

  • 真想剁了我的手,这波耍懒,没有给我保存快照,然后装cudnn的时候失败了,有结束不了,cuda驱动也运行不了,重新装了一遍。
  • **注意!!**这里我修改了两种环境的bash,分别是root和当前用户的
  • 又来了一次,这波得保存好快照,手再贱,就剁手!!

在这里插入图片描述

  • 这波放心了!!!
CUDNN的安装
  • 点击官网,进行下载,注意版本,**加粗样式**

  • 估计这伙下错了,是针对ubuntu的deb文件,是可以安装和执行的,不需要换目录,先试试看吧。先创建一个镜像
    在这里插入图片描述

  • 这个方法不行,还是得下载压缩文件。这种安装方式反而把我的显卡驱动给我搞崩溃了,不行!!

  • 下载压缩文件的方式,下载连接,下载截图,这里直接下载tar压缩文件
    在这里插入图片描述

  • 下载完毕,root打开,复制文件
    在这里插入图片描述

  • 将相关的库文件进行迁移,并赋予权限,可以看得出,还是一个懒人新手,直接给777了

cp cudnn-linux-x86_64-8.6.0.163_cuda11-archive/include/cudnn.h /usr/local/cuda-11.7/include/
cp cudnn-linux-x86_64-8.6.0.163_cuda11-archive/lib/libcudnn* /usr/local/cuda-11.7/lib64/
chmod a+r /usr/local/cuda-11.7/include/cudnn.h
chmod a+r /usr/local/cuda-11.7/lib64/libcudnn*

在这里插入图片描述

  • 测试是否安装成功,按照他们说的,输入指令
cat /usr/local/cuda-11.7/include/cudnn.h | grep CUDNN_MAJOR -A 2

出现如下的东西就是正确的

在这里插入图片描述

  • 但是我看了这个文件,里面确实没这个东西,在没有编译的情况下,就是打开了不应该会有变化。
    在这里插入图片描述
pytorch安装
  • 找到官网,链接
  • 复制到conda,自己进行安装!!

在这里插入图片描述

  • 先创建一个conda环境,然后不需要装cuda了,指令如下
# 创建环境,这波忙猜python版本3.8应该够的,有犯病了
conda create --name pytorch2.0 python==3.8
# 激活环境
conda activate pytorch2.0
# 安装对应的包
conda install pytorch torchvision torchaudio -c pytorch 
  • 我愿称之为光速打脸,再建一个环境吧。
    在这里插入图片描述
  • 当我没说,重新输入一遍上面的指令,改改
# 你没看到,我刚把上一个环境删除了
conda remove --name pytorch2.0 --all
conda create --name pytorch2-0 python==3.9
# 激活环境
conda activate pytorch2-0
# 安装对应的包
conda install pytorch torchvision torchaudio -c pytorch 
  • 安装完毕,这个深度学习的代码测试一下
    在这里插入图片描述

问题

  • 我的anaconda是通过root安装的,我当前用户调用不了。这个就暂时搁置了,难道要重新装anaconda吗???
  • **哦吼!**我已经成功解决了,给你一个链接,为什么会出现这个问题。anaconda安装的正确姿势
  • 然后安装了pytorch1.13版本,安装成功,下面就是跑跑程序了。

在这里插入图片描述

  • 测试能否顺利调用GPU进行加速
    在这里插入图片描述
  • 这就很烦了,弄了半个月都没成功,不过这都不是问题,我查看了一下显卡和驱动,发现了这个奇怪的事情。显卡驱动对应的cuda版本是12.1,但是我当时专门装了驱动,但是没有装cuda,难道会默认给我安装cuda,但是在路经里面并没有发现啊。然后调用装好cuda的编译器版本发,发现是正常的11.7并没有任何异常,这个版本异常就是最大的异常了。
    在这里插入图片描述
  • 显卡驱动对应的是cuda driver version,然后编译器对应的cuda版本是runtime version,所以两个是不冲突的,runtime version是cuda版本的上限,runtime version只要小雨runtime version就行了。
离谱,conda永远不成功,venv一下子就成功了
  • 这是venv安装的,终于找到了对应的cuda,检测到了GPU,。
    在这里插入图片描述

  • 这是conda安装的,就尼玛离谱,我装了好几次都不得行。
    在这里插入图片描述

  • 做最后一次尝试,不行我就用venv.我猜测如果路径的问题,这些conda环境是安装在opt下方的,并不是安装在用户的目录下的。换了用户还是不行。所以放弃了,直接使用venv吧,下面分析一下这两个的差别。

在这里插入图片描述

  • 主要问题是因为conda我找不到目录下方的那些个bin目录下的编译器文件,所以就识别不了对应的环境。但是venv就可以,就算我改了权限是777,也没什么用。我可以在试试看重新安装。
    在这里插入图片描述

  • venv和conda的差别,这里是参考了这里的链接《python配置-virtualenv 和 conda的区别,基本上没啥区别

    • conda是功能强大的环境管理工具,可以管理很多中开发语言的环境,但是这里基本上只需要操作python环境,所以不需要
    • venv是依赖主环境的,我需要制定,conda是可以独立于主编译器环境的,但是也没是,我基本上还是只需要一种虚拟环境
    • venv自己自行下载,但是conda就不需要自行下咋

我已经尝试够了,感觉就是我的conda安装不对,但是没有那么多时间去做额外的尝试了,暂时就删除了吧

七、卸载系列

卸载Nvidia Driver和CUDA
  • 暂时没有找到好的方法,要么直接恢复镜像,要么直接从装系统。
卸载conda
  • 特定目录,直接删除对应anaconda文件
sudo rm -rf path/anaconda3
  • 修改配置文件
# 切换到当前的目录
cd 
# 删除配置文件中的内容有关conda的东西
gedit .bashrc

总结

现在的理解就是我可以装多个版本的cuda toolkit,,然后不同的框架会自动调用

参考

其中用到的参考链接如下,如果认为侵删,请联系,我把相应的内容删除

  • 一文讲清楚CUDA、CUDA toolkit、CUDNN、NVCC关系
  • 驱动卸载和安装
  • linux mint 驱动命令,如何在Linux Mint上安装Nvidia驱动程序
  • 【亲测有效】Linux系统安装NVIDIA显卡驱动
  • Linux Nvidia显卡驱动安装
  • 官方文档Installation Guide

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

uniapp请求图片时候发现提示GET http://localhost:xxxx/undefined 401,undefined:1解决办法【伸手党福利】

同理解决问题&#xff1a;所有请求发起完成之后执行业务逻辑 目录 现象原因解决办法方法1&#xff1a;提前给变量一个非空默认值方法2&#xff1a;使用前端图片代替后端方法3&#xff1a;使用异步加载判断&#xff1a;注意&#xff1a;这种直接在页面判断内容是否为空或者undef…

Java JVM基础入门(一):jvm的组成、串池、常量池、常用程序调优参数

JVM JVM是java的虚拟机&#xff0c;java的运行环境&#xff08;java二进制字节码的运行环境&#xff09; 好处&#xff1a; 一次编写&#xff0c;到处运行自动内存管理&#xff0c;垃圾回收功能 JDK、JRE、JVM的关系图 常见的JVM&#xff1a; oracle的Hotspot是我们通常使…

矿山电子封条智能监管算法 yolov8

矿山电子封条智能监管系统通过YOLOv8python网络模型技术&#xff0c;矿山电子封条智能监管算法模型在对矿井人数变化、生产作业状态、出入井人员等情况实时监测分析&#xff0c;发现煤矿人员作业及状态异常动态及时告警&#xff0c;自动将报警信息推送给后台。YOLOv8 算法的核心…

k8s部署ingress-nginx步骤

目录 一、ingress简介 二、部署ingress controller、ingress-service 三、创建对外服务deployment和service 四、创建HTTP代理yaml 五、测试 六、公网域名测试 七、参考博客 一、ingress简介 service的作用体现在两个方面&#xff0c;对集群内部&#xff0c;它不断跟踪…

[计算机图形学]光线追踪的基本原理(前瞻预习/复习回顾)

一、光栅化的弊端 我们为什么要用光线追踪呢&#xff0c;在之前的篇章中&#xff0c;我们提到了&#xff0c;光栅化的方式很难表示一些全局的效果&#xff0c;如(1)软阴影&#xff0c;(2)Glossy的反射(类似镜子但又不像镜子那么光滑的材质&#xff0c;如打磨的铜镜和一些金属)&…

【GIT】git push后github没看到pull requests解决

当你在Github上push代码后&#xff0c;如果在远程仓库中没有看到pull request请求&#xff0c;那么有以下几种可能的原因&#xff1a; 未创建pull request 如果在本地使用git push命令将修改推送到Github上&#xff0c;但还没有在Github上创建pull request请求&#xff0c;则不…

FreeRTOS 队列(一)

文章目录 一、队列简介1. 数据存储2. 多任务访问3. 出队阻塞4. 入队阻塞5. 队列操作过程图示 二、队列结构体三、队列创建1. 函数原型&#xff08;1&#xff09;函数 xQueueCreate()&#xff08;2&#xff09;函数 xQueueCreateStatic()&#xff08;3&#xff09;函数 xQueueGe…

Golang每日一练(leetDay0045)

目录 133. 克隆图 Clone Graph &#x1f31f;&#x1f31f; 134. 加油站 Gas Station &#x1f31f;&#x1f31f; 135. 分发糖果 Candy &#x1f31f;&#x1f31f;&#x1f31f; &#x1f31f; 每日一练刷题专栏 &#x1f31f; Golang每日一练 专栏 Python每日一练 …

【PR 基础】设置上下黑白边的两种方法

方法1 点击 文件-》新建-》旧版标题 点击确定 点击矩形工具 利用矩形工具框选出上下黑白边 款选完成后点击关闭 将刚创建的字幕拖入轨道 可以修改其持续时长与视频时长保持一致 如果想要修改字幕可以双击来修改 比如可以将颜色改为黑色 方法2 点击号&#xff0c;再选择安全边…

如何在表格里面使用VSTACK、HSTACK等函数

如何在表格里面使用VSTACK、HSTACK等函数 书接前文 ONLYOFFICE 桌面编辑器 v7.3 新功能介绍 里面介绍了最新版本的表格里面&#xff0c;添加的公式将帮助您更高效地进行数据计算&#xff1a;TEXTBEFORE、TEXTAFTER、TEXTSPLIT、VSTACK、HSTACK、TOROW、TOCOL、WRAPROWS、WRA…

IPSEC VPN

1.数据认证的介绍、作用、实现的技术手段 数据认证是指通过一系列验证过程检查数据的完整性、真实性、可靠性和准确性&#xff0c;以确保这些数据来自于已知或可信的来源。数据认证的目的是保护数据免受篡改、冒充或欺骗等威胁&#xff0c;确保数据的安全性和可信度。实现数据…

Windows 彻底卸载联软流氓软件(亲测可用)

文章目录 1、前言2、卸载步骤&#xff08;1&#xff09;打开服务&#xff0c;将所有Uni开头的服务都禁用&#xff0c;某些服务禁用后可能还是会自启&#xff0c;不过不影响&#xff08;2&#xff09;进入安全模式&#xff0c;电脑重启&#xff08;3&#xff09;重启后桌面显示了…

怎么将照片KB调小?压缩照片kb的几个方法

将照片KB调小的意思是将照片文件的大小缩小&#xff0c;使其占据更小的存储空间。在一些特定场景下&#xff0c;如网页设计、邮件发送、上传文件等&#xff0c;限制了文件大小&#xff0c;因此需要将照片压缩到规定大小以内。通常情况下&#xff0c;压缩后的照片质量会相应降低…

18.Java泛型

目录 1. Java基本介绍 2. JDK下载安装及其环境配置 3. 一个简单的java程序 4. Eclipse基本使用、数据类型、运算符 5. 控制语句&#xff08;if、switch、for、while、foreach&#xff09; 6. Java数组 7. Java字符串对象(String|StringBuffer|StringBuilder|StringJoiner…

关闭默认共享服务

目录 1.从网络上关闭共享协议2.禁用共享服务3.关闭防火墙共享端口4.脚本自启动删除默认共享5.修改注册表彻底屏蔽共享 共5种方法&#xff0c;推荐前三种搭配。 1.从网络上关闭共享协议 打开网络和共享中心->本地连接->属性把" Microsoft 网络的文件和打印机共享&qu…

Word如何插入图片?最全方法总结(2023新版)

案例&#xff1a;Word如何插入图片 【我最近在写毕业论文&#xff0c;需要在Word文档里添加一些图片&#xff0c;想问问大家Word如何插入图片呀&#xff1f;感谢回答&#xff01;】 Microsoft Word是一个广泛使用的文字处理软件&#xff0c;在使用中如果插入图片可以很好的丰…

优思学院|精益生产和六西格玛如何把控质量?

精益生产是一种流程改善方法&#xff0c;旨在最大程度地减少浪费和提高效率。在实施精益生产时&#xff0c;质量控制是一个重要的因素&#xff0c;因为不合格的产品会导致延误和浪费。优思学院在本文将探讨精益生产和六西格玛管理理论如何控制质量&#xff0c;以及解决产品质量…

poi-tl简介与文本/表格和图片渲染

一、poi-tl简介 下面简介来自官方文档。 官方文档&#xff1a;http://deepoove.com/poi-tl/#_why_poi_tl 1、简介 poi-tl&#xff08;poi template language&#xff09;是Word模板引擎&#xff0c;使用Word模板和数据创建很棒的Word文档。 poi-tl是一个基于Apache POI的Word模…

【Python】【进阶篇】5、Django Admin后台管理系统

目录 5、Django Admin后台管理系统1. 后台管理系统的重要性2. 了解Django后台管理功能 5、Django Admin后台管理系统 Django 的后台管理系统是非常出色的&#xff0c;新建项目以后&#xff0c;Django 就为我们设置好了后台管理系统的各种功能&#xff0c;本节我们将一起认识它…

SQLServer:Win/Linux环境安装及一键部署脚本

1. Win安装SQLServer CSDN已有完整安装流程&#xff0c;亲测可用。----》Windows安装SQLServer流程 2. Linux安装 SQLServer 2.1 设置镜像 curl https://packages.microsoft.com/config/rhel/7/mssql-server-2017.repo > /etc/yum.repos.d/mssql-server.repo 2.2 通过y…