全网最新最全的基于Tensorflow和PyTorch深度学习环境安装教程: Tensorflow 2.10.1 加 CUDA 11.8 加 CUDNN8.8.1加PyTorch2.0.0

本文编写日期是:2023年4月. Python开发环境是Anaconda 3.10版本,具体Anaconda的安装这里就不赘述了,基础来的。建议先完整看完本文再试,特别是最后安装过程经验分享,可以抑制安装过程中一些奇怪的念头,减少走弯路。

目录

1. NVidia驱动安装 

2. 安装CUDA Toolkit

3. 安装Tensorflow 2.10.1

4. 添加CUDNN加速包

5. 验证是否成功安装和调用GPU进行运算

6. 测试启用CUDNN加速器

7. Tensorflow 小结

8. 安装PyTorch

9. 检测PyTorch安装情况

10. PyTorch试运行

11. 安装过程经验分享和坑


 

1. NVidia驱动安装 

首先确定你的电脑是N卡,也是英伟达的显卡,否则本文就不用看了。

在官网找到最新的驱动下载安装。

官方驱动 | NVIDIA

f93d2a46322d43b4953a26789bd63de2.png

 安装过程略过,全选,C盘安装。

安装完成后,CMD运行nvidia-smi,查看这个驱动支持的最高版本CUDA

19c09605995048368c1eb9a4adbe6747.png

 或者入NVIDIA的控制面板查看:

57f0d795d1f044f6a309c026932c4fc5.png也就是后面安装的CUDA版本,不能高于12.1

2. 安装CUDA Toolkit

安装之前,最好先安装好Microsoft的 Visual Studio

安装 Visual Studio | Microsoft Learn

25f137927532483a8297cc86b02969eb.png

安装守后选好CUDA版本,此处是入口:CUDA 工具包下载

e94651a8b11341ab9e6f32628ed53c9e.png

但是,先别急着下载安装,注意了!!!!!!!!!!!!!!!!!!!!!

如果运行的Tensorflow框架,那么要看最新的Tensorflow支持什么版本的CUDA,再进行安装。

(至于多版本CUDA同时共存的方法,可参考这位大佬的文章:CUDA版本共存方法

个人经验,不要急着研究多版本问题,后面有环境需求了,再慢慢看。)

回到Tensorflow支持的CUDA版本问题。

在本文件的发布时刻,Tensorflow在Native Windows系统下,目前只支持到Tensorflow 2.10.1版本。意思就是:暂时不要了解太多,就安装到Tensorflow 2.10.1版本就够用了(目前还有2.11等版本)。具体原因,请读回官方文档:Tensorflow版本安装

注意需要转回英文页面,中文实在被阉割太多了。实在看不明白,复制出来翻译吧。原因简而言之就是Windows开始进军开源,在原生系统(Native Windows)下,整合出了一个Windows WSL2功能,也就是在Windows系统内,整合了Linux系统的功能。相当于不用再为了两种系统,在机器上做双系统了,但实用性上来说,只能说,能用吧。具体关于WSL2的,网上有很多资料,此处不多说。参考另一大佬:WSL2的安装使用

对应Tensorflow 2.10.1的版本,目前支持到CUDA 11.8.0版本,下载CUDA  Toolkit 11.8.0后默认C盘全选安装(我C盘很大,哈哈,我有两条990 1T SSD。其实是懒得自定义,后面也容易出错)。

3. 安装Tensorflow 2.10.1

如果以前安装过其他版本的tensorflow,强烈建议使用以下命令卸载:

pip uninstall tensorflow # 卸载旧版本的tensorflow
pip uninstall tensorflow-intel # 卸载intel版本的tensorflow,一般没有

pip uninstall tensorflow-gpu #卸载老的GPU版本
tensorflow从2.x版本后已将CPU版和GPU版进行合并,所以不要使用pip install tensorflow-gpu了,成功了也是旧版本的。这使用以下命令进行安装:

pip install tensorflow=2.10.1

这里不用conda安装,也不要添加国内的镜像源,原因后面会说,速度会比较慢,但值得等待!

4. 添加CUDNN加速包

下载CUDA 11.8.0 版本的cuDNN加速包,版本是V8.8.1 for CUDA 11.x 官方地址在:cuDNN下载地址 

7e9a7fe0f4984abc8dcfe48cb0636dcb.png下载后解压,将解压后的三个文件夹bin、lib、include复制到安装目录下,合并。

d3b85a5713664118b598460fb0423913.png

31c89cf55cf340598c713ed62dec4b16.png

配置环境变量

11ff724b623c44e08bf8083e9550f87f.png

以上可以看到CUDA 11.8.0安装完成后,已经设置在环境变量公有路径。

接下来配置CUDA和CUDNN的路径,去到PATH变量名下,点击编辑:

f86fbf5015e144ceb9b8644afa45e299.png

 添加如图中所示的环境变量V11_8的5个变量,缺一不可,这里用的是短地址,默认安装路径下,为C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8

(对了,如果你看不到这个环境变量清单,只看到一行文本,那是因为你的第一个变量是个短地址,随便添加一个C:\或者把已有的长地址移到第一行,后保存重新打开就有了)

保存,建议重启电脑,可以先等会。

查算力,按照下图,CD到安装地址,运行deviceQuery.exe 。不要羡慕哥,没错,又在显摆4090了。

747d5aa6b3164e069ab60e240b06abaf.png

 再运行 bandwidthTest.exed636238754914abebc13d2f6d24a9d31.png

 以上两者都的结果都是PASS,则说明暂时配置成功。

5. 验证是否成功安装和调用GPU进行运算

1,如果以下代码运行得到如注释所示的结果,则证明安装成功。

import tensorflow as tf
print("Num GPUs Available: ", len(tf.config.list_physical_devices('GPU')))
#这一行输出至少是数量1,说明有1个显卡
print("CUDA Available:", tf.test.is_built_with_cuda())
#这一行要输出True
print("GPU Support:", tf.test.is_built_with_gpu_support())
#这一行也要输出True

2,就算安装成功,也要运行一下以下代码,看计算过程会不会调用GPU:

tf.debugging.set_log_device_placement(True)
# Create some tensors
a = tf.constant([[1.0, 2.0, 3.0], [4.0, 5.0, 6.0]])
b = tf.constant([[1.0, 2.0], [3.0, 4.0], [5.0, 6.0]])
c = tf.matmul(a, b)
print(c)

如果显示的是如下图CPU字样,就很遗憾了,4090也没得得瑟,调用的还是CPU。如果结果有下图2中的GPU字样,那么恭喜,一次成功。

3c02a41237324b468395aaf19468ced7.png

3916f00c13684513ad492a2a35fbe62c.png

如果没有成功,先不急,说明系统有旧的版本或者安装版本还是不对,需要重新装过,本人也是经历了几次才装成功。

6. 测试启用CUDNN加速器

以上,说明已经成功安装Tensorflow2.10.1,成功调用CUDA,但,还不知道能不能成功启用CUDNN加速器。所以,用以下代码进行测试:

import os
os.environ["CUDA_VISIBLE_DEVICES"]="0"
import numpy as np
import tensorflow as tf
from tensorflow.keras.models import Sequential 
from tensorflow.keras.layers import Dense, Dropout, Conv2D, MaxPool2D, Flatten
from tensorflow.keras.datasets import mnist
from tensorflow.keras.utils import to_categorical
from tensorflow.keras.callbacks import TensorBoard
import time
from tensorflow.python.client import device_libdef create_model():model = Sequential()model.add(Conv2D(32, (5, 5), activation='relu', input_shape=[28, 28, 1])) model.add(Conv2D(64, (5, 5), activation='relu'))  model.add(MaxPool2D(pool_size=(2, 2)))  model.add(Flatten()) model.add(Dropout(0.5))model.add(Dense(128, activation='relu'))model.add(Dropout(0.5))model.add(Dense(10, activation='softmax'))return modeldef compile_model(model):model.compile(loss='categorical_crossentropy', optimizer="adam", metrics=['acc'])return modeldef train_model(model, x_train, y_train, batch_size=128, epochs=10):tbCallBack = TensorBoard(log_dir="model", histogram_freq=1, write_grads=True)history = model.fit(x_train, y_train, batch_size=batch_size, epochs=epochs, shuffle=True, verbose=2,validation_split=0.2, callbacks=[tbCallBack])return history, modelif __name__ == "__main__":print(tf.__version__)print(device_lib.list_local_devices())(x_train, y_train), (x_test, y_test) = mnist.load_data() print(np.shape(x_train), np.shape(y_train), np.shape(x_test), np.shape(y_test))x_train = np.expand_dims(x_train, axis=3)x_test = np.expand_dims(x_test, axis=3)y_train = to_categorical(y_train, num_classes=10)y_test = to_categorical(y_test, num_classes=10)print(np.shape(x_train), np.shape(y_train), np.shape(x_test), np.shape(y_test))model = create_model()model = compile_model(model)print("start Time")ts = time.time()history, model = train_model(model, x_train, y_train, epochs=2)print("Time consumption:", time.time() - ts)

能够成功输出结果,则基本就是成功了。博主在跑这段程序的时候,Jupyter出现报错:The kernel appears to have died. It will restart automatically.

f939ba7deb224ef5ad02209bb3a08388.png

 GPU也直接退出运算。

9743f683b4a44dfa88b9ea09640737f2.png

 查看Jupyter后台,报错文为:Could not locate zlibwapi.dll. Please make sure it is in your library path!

查看官方文档,Installation Guide :: NVIDIA Deep Learning cuDNN Documentation ,意思是缺少zlibwapi.dll动态库文件,点击红色部分下载,但从Nvidia官网是无法成功下载的

ec0fbd2451bd463b916568d49bf041a9.png

只能从Zlibdll官网下载:zlibwapi.dll下载,但是下载的时候要看清楚自己的系统是32位还是64位的,一般现在都是Intel EM64T,也就是英特尔64位系统, 点击下载。9e0181cf7e124ef3a57dcaf4781d085e.png

 下载后的文件如下:

7d2176c03bed4573b0237176697352e0.png

 分别复制文件到以下地址:

  • zlibwapi.dll 复制到:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8\bin
  • zlibwapi.lib 复制到:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8\lib\x64

博主一开始因为下载成了32位的文件包,复制进去后运行报错:Could not load library zlibwapi.dll. Error code 193. 英文能力需要提升啊,There看成It. 

7. Tensorflow 小结

以上是关于Tensorflow2.0在N卡上运行的具体配置,基本上是当前在原生Windows系统下,所能安装的最高版本的程序,各个程序的版本如下,一定要安装对版本:

  • Tensorflow 2.10.1
  • CUDAToolkit 11.8
  • CUDNN 8.8.1
  • Python 3.10 -- Anaconda

8. 安装PyTorch

接下来,安装另一个图像处理框架:PyTorch

前面设置对了,这个安装相对就比较顺利了,进入官网:PyTorch

a3d09058c8344e9fbab958c0bc00692d.png

 按照自己的系统配置以及安装 的CUDA版本,运行安装即可:

pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118

9. 检测PyTorch安装情况

接着运行检测程序:

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

运行结果如下,说明PyTorch也成功调用显卡。

5d9af7d2c2534b1db82b08c0f33213b8.png

10. PyTorch试运行

再运行测试程序:

import time
import torch
import torchvision
from torch import nn
from torch.utils.data import DataLoader
from torch.utils.tensorboard import SummaryWriterdevice = torch.device("cuda")train_data = torchvision.datasets.CIFAR10('../dataset', True, transform=torchvision.transforms.ToTensor(), download=True)
test_data = torchvision.datasets.CIFAR10('../dataset', False, transform=torchvision.transforms.ToTensor(), download=True)
train_data_size = len(train_data) 
test_data_size = len(test_data) print("训练集长度:{}, 测试集长度:{}".format(train_data_size, test_data_size))# 用 DataLoader加载数据集
train_dataloader = DataLoader(train_data, batch_size=64)
test_dataloader = DataLoader(test_data, batch_size=64)# 创建网络模型
class Model(nn.Module):def __init__(self):super(Model, self).__init__()self.model = nn.Sequential(nn.Conv2d(3, 32, 5, 1, 2),nn.MaxPool2d(2),nn.Conv2d(32, 32, 5, 1, 2),nn.MaxPool2d(2),nn.Conv2d(32, 64, 5, 1, 2),nn.MaxPool2d(2),nn.Flatten(),nn.Linear(64*4*4, 64),nn.Linear(64, 10))def forward(self, x):x = self.model(x)return xmodel = Model()
model.to(device)# 损失函数
loss_fn = nn.CrossEntropyLoss()
loss_fn.to(device)# 优化器
learning_rate = 0.01    # 1e-2 = 10^-2
optimizer = torch.optim.SGD(model.parameters(), lr=learning_rate)# 设置训练网络的参数
total_train_step = 0    # 训练次数
total_test_step = 0     # 测试次数
epoch = 10              # 训练轮数# 添加tensorboard
writer = SummaryWriter("../logs_train")for i in range(epoch):print("--------------第{}轮训练开始---------------".format(i+1))# 训练开始model.train()for data in train_dataloader:if total_train_step % 100 == 1:start_time = time.time()imgs, targets = dataimgs = imgs.to(device)targets = targets.to(device)outputs = model(imgs)loss = loss_fn(outputs, targets)# 优化器优化模型optimizer.zero_grad()loss.backward()optimizer.step()total_train_step += 1if total_train_step % 100 == 0:end_time = time.time()print("训练次数:{},loss:{:.3f},time:{:.3f}".format(total_train_step, loss.item(), end_time-start_time))writer.add_scalar('train_loss', loss.item(), total_train_step)# 测试开始model.eval()total_test_loss = 0total_accuracy = 0      # 整体正确预测的个数with torch.no_grad():   # 清空梯度for data in test_dataloader:imgs, targets = dataimgs = imgs.to(device)targets = targets.to(device)outputs = model(imgs)loss = loss_fn(outputs, targets)total_test_loss += lossaccuracy = (outputs.argmax(1) == targets).sum()total_accuracy += accuracyprint("测试集上的平均loss: {:.3f}".format(total_test_loss/len(test_dataloader)))print("整体测试集上的正确率:{:.3f}".format(total_accuracy/test_data_size))writer.add_scalar('test_loss', total_test_loss, total_test_step)writer.add_scalar('test_accuracy', total_accuracy/test_data_size, total_test_step)total_test_step += 1# 保存训练模型# torch.save(model, "../model_data/model_{}.pth".format(i+1))if i % 100 == 0:torch.save(model.state_dict(), "../model_data/model_{}.pth".format(i + 1))print("模型已保存!")writer.close()

速度简直飞起:

841e8e3c329e4154bafdfba57c57e0bc.png

11. 安装过程经验分享和坑

以上,就是所有的安装过程,其实过程并不像上面写的这么顺利:

1. 关于版本的问题由于一开始太过兴奋,直接下载了CUDA12.1安装,后面发现在Tensorflow2.10.1无法运行CUDA12.1,又下载了CUDA11.8,再后面又研究了怎么双版本CUDA,12.1与11.8的共存方法,并做了设置。 结果一直检测不到GPU。

2. 过程中还卸载了Tensorflow,重新安装 Tensorflow。还在pip和conda的安装方式下纠结。一开始安装的是Tensorflow2.10.0,卸载又重新安装,结果在重新安装过程中按了退出,导致整个Tensorflow的库坏掉,不得不重新来过。

3. 最后的解决方法是:先卸载CUDA 12.1,以及删除对应的复制的CUDNN文件,同时删除设置的环境变量。然后卸载Anaconda。清理一下清册表,重启。

4. 重新安装一次CUDA 11.8, 安装之前需要安装微软的Visual Studio.安装教程如安装 Visual Studio | Microsoft Learn

5. 重新安装pip 安装Tensorflow 2.10.1,个人不太喜欢用Conda安装,Anaconda有时没有最新的文件包,所以还是选择从Pypi源下载,但是速度超级慢,用了5个小时,开机过夜下载完的。这里特别要强调的是,对于这些比较大的而且停更的关键库,最好不要用国内镜像源,虽然飞快,但博主中间试过一次,还是会报错是的,库不完全。而且现在很多国内源对它停更了,即使是Tsinghua源也不能保证一定能行,比如以下玩法就失败了,显示成功安装,但调用不了。

pip install tensorflow==2.10.1 -i https://pypi.tuna.tsinghua.edu.cn/simple
#选择国内清华Pypi源安装

总结以上,对于无法调用GPU的问题,大多数还是各个程序的版本不对应,本文的版本匹配是博主亲测成功的。

对于网传还有这么一个Tensorflow, CUDAToolkit, CUDNN, Python版本的对应表,也是官网的版本对应表:Build from source on Windows  |  TensorFlow

0a17591e77a44ccb9ea9533d1be4c5e7.png

 其实这个对应表是针对上文提及的Tensorflow-gpu版本的,也就是旧的Tensorflow版本,在Tensorflow2.0版本中已经将gpu版本合并了,并不需要单独pip tensorflow-gpu。所以这里看到的CUDA及CUDNN版本都相对比较旧,其实按照这个版本安装理论上也是可行的,特别是针对一些旧的显卡。

另外,在一些英文教程中,还提到了直接conda 安装CUDA和CUDNN, 直接一行搞定,但前提也是要搞清楚各个程序的版本对应。相对来说就没有那么麻烦,不用下载CUDAToolkit手动安装以及CUDNN的配置,本人没有亲测过,不过在上一台独显笔记本电脑中,误打误撞安装上了,也是可行的,但Conda的库更新没那么及时,现在用以下语句安装的话,会报错找不到版本为8.8.1的cudnn包,降级cudnn的包版本也许可行,这里就不测试了,折腾几天终于可以跑了。

所以个人还是推荐手动安装CUDA和CUDNN。

 

conda install -c conda-forge cudatoolkit=11.8 cudnn=8.8.1

 

 

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

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

相关文章

气动工具市场分析:预计2029年将达到725亿元

从广义上讲,气动工具主要是利用压缩空气带动气动马达而对外输出动能工作的一种工具,根据其基本工作方式可分为:1)旋转式(偏心可动叶片式);2)往复式(容积活塞式)一般气动工具主要由动力输出部分、作业形式转化部分、进排气路部分、…

排序与算法--冒泡排序

1.原理 比较两个相邻的元素,将较大的值交换到右边 2.举例:2 8 7 5 9 4 3 第一趟: 第一次:比较第一个和第二个:2 8 ,不需要交换 第二次:比较 8 7,将8和7进行交换:2 7 …

HT1621B新版本字段式驱动显示芯片替代PC1621K

PC1621K是一个32*4的LCD驱动器,可软体程控使其适用于多样化的LCD应用线路,仅用到3至4条讯号线便可控制LCD驱动器,除此之外也可介由指令使其进入省电模式 特色: 工作电压:2.4-5.2V 内建256KHz RC oscillator可外接 …

keil生成bin文件(通用型)

有些时候需要在keil里面生成bin文件,但找到的各种方式五花八门,特别是要填写文件路径等没有通用性,搞个不同的工程就得改下,找到这个跟路径无关的代码,进行记录下。 首先还是点开keil的设置: 按照上面的图…

html创建电子邮件链接

refer: 可以在a标签里使用&#xff1a; <a href"mailto:nameemail.com">Email</a>

【数据结构】平衡树引入

数据结构-平衡树 前置知识 二叉树二叉树的中序遍历 问题 维护一个数据结构&#xff0c;支持插入元素、删除元素、查询元素的排名、查询排名对应的元素、查询元素的前驱、查询元素的后继等。 BST&#xff08;二叉搜索树&#xff09; 作为一个基本无效&#xff08;很容易卡掉…

【大模型】800万纯AI战士年末大集结,硬核干货与音乐美食12月28日准时开炫

文章目录 WAVE SUMMIT五载十届&#xff0c;AI开发者热血正当时酷炫前沿、星河共聚&#xff01;大模型技术生态发展正当时 回望2023年&#xff0c;大语言模型或许将是科技史上最浓墨重彩的一笔。从技术、产业到生态&#xff0c;大语言模型在突飞猛进中加速重构万物。随着理解、生…

Tomcat9运行 tomcat9w.exe 提示“指定服务未安装”

Tomcat9运行 tomcat9w.exe 提示“指定服务未安装” 问题描述解决方案 问题描述 Tomcat启动项目时&#xff0c;命令窗口显示内存不足&#xff0c;网上查到博客提到需要 运行 tomcat9w.exe 修改内存设置&#xff0c;运行 tomcat9w.exe 时提示如下。 解决方案 配置环境变量CAT…

prometheus+alertmanager监控告警消息推送自定义接口

在prometheus的告警方案中&#xff0c;alertmanager提供了邮件、Slack、webhook等多种通知方式的支持 本篇主要介绍如何通过webhook方式将告警消息发送到自己的告警媒介 首先&#xff0c;部署alertmanager应用&#xff0c;此处不再赘述 配置webhook_configs为我们搭建的web服…

038.Python面向对象_三大特性综合案例1

我 的 个 人 主 页&#xff1a;&#x1f449;&#x1f449; 失心疯的个人主页 &#x1f448;&#x1f448; 入 门 教 程 推 荐 &#xff1a;&#x1f449;&#x1f449; Python零基础入门教程合集 &#x1f448;&#x1f448; 虚 拟 环 境 搭 建 &#xff1a;&#x1f449;&…

如何在 Git 中创建分支

1.打开命令行终端&#xff0c;执行以下命令来查看当前分支列表&#xff1a; git branch 显示当前仓库中的所有分支&#xff0c;以及当前所在的分支&#xff08;显示为带有星号 * 的分支&#xff09;。 2.创建一个新的分支&#xff0c;可以使用以下命令&#xff1a; git bran…

使用JSON-Server快速搭建RESTful API接口

​​​​​​​ 概要 随着前端技术的快速发展&#xff0c;前后端分离已经成为了一种趋势。在前后端分离的架构中&#xff0c;前端需要与后端进行数据的交互&#xff0c;这就需要后端提供RESTful API接口。而在开发过程中&#xff0c;我们常常需要模拟后端数据接口&#xf…

机器学习与低代码开发:创新驱动的双剑合璧

引言 随着科技的日新月异&#xff0c;机器学习和低代码开发已经成为引领技术行业变革的两大重要趋势。机器学习通过模拟人类的学习方式&#xff0c;让计算机具备了自我学习和预测的能力&#xff0c;打破了传统计算机程序的局限性。而低代码开发则以简化软件开发过程为目标&…

乐小鱼大理之行

在一个晴朗的日子里&#xff0c;乐小鱼和她的家人一起踏上了一场梦幻般的大理之行。他们驱车穿越沧山&#xff0c;眼前豁然开朗&#xff0c;洱海在阳光下泛着碧绿的光芒。 乐小鱼好奇地探出头&#xff0c;看到了连绵的山脉和湛蓝的湖水。她兴奋地说&#xff1a;“哇&#xff0…

1688订单详情接口使用指南:含代码实现获取订单信息

一、引言 随着电子商务的飞速发展&#xff0c;越来越多的企业开始通过1688平台进行采购和销售。为了更好地管理订单&#xff0c;提高客户满意度&#xff0c;许多企业选择使用1688订单详情接口来获取订单信息。本文将详细介绍如何使用1688订单详情接口&#xff0c;并提供示例代…

c++ multimap

multimap创建 multimap<string , string> m; m.insert(make_pair("12","3234")); m.insert(make_pair("12","3234")); m.insert(make_pair("12","3234"));遍历 multimap<string , string> m; m.inser…

.NET core 搭建一个跨平台的 Web Service

以前搭建的webservice 都是基于.NET fromwork的&#xff0c;我们知道.NET fromwork是非跨平台的&#xff0c;只能部署在iis上&#xff0c;今天教大家用.NET core搭建一个可跨平台的Web Service 新建一个.net core空项目 给项目起一个名字 选一个.net框架&#xff0c;我这里选…

iOS 定位问题解决方法整理

文章目录 一、Assertion failure in -[CLLocationManager setAllowsBackgroundLocationUpdates:] 一、Assertion failure in -[CLLocationManager setAllowsBackgroundLocationUpdates:] 后台定位权限没有开启 错误描述&#xff1a; 错误原因&#xff1a; 定位管理中设置了后…

vue编辑页面提示 this file does not belong to the project

背景 打开vue项目工程 文件夹被锁定&#xff08;有黄色背景&#xff09;&#xff0c;编辑页面时&#xff0c;报错。 报错提示&#xff1a; vue编辑页面提示 this file does not belong to the project 原因 一不下心打开了错误的文件包 解决方案 1、删除.idea文件夹 2、…

2023 年山东省职业院校技能大赛(高等职业教育) “信息安全管理与评估”样题

2023 年山东省职业院校技能大赛&#xff08;高等职业教育&#xff09; “信息安全管理与评估”样题 目录 任务 1 网络平台搭建&#xff08;50 分&#xff09; 任务 2 网络安全设备配置与防护&#xff08;250 分&#xff09; 模块二 网络安全事件响应、数字取证调查、应用程序安…