网站flash动画效果代码/seo优化神器

网站flash动画效果代码,seo优化神器,无锡做网站选优易信,淘宝网站建设费用PyTorch-基础 环境准备 CUDA Toolkit安装(核显跳过此步骤) CUDA Toolkit是NVIDIA的开发工具,里面提供了各种工具、如编译器、调试器和库 首先通过NVIDIA控制面板查看本机显卡驱动对应的CUDA版本,如何去下载对应版本的Toolkit工…

PyTorch-基础

环境准备

CUDA Toolkit安装(核显跳过此步骤)

CUDA Toolkit是NVIDIA的开发工具,里面提供了各种工具、如编译器、调试器和库

首先通过NVIDIA控制面板查看本机显卡驱动对应的CUDA版本,如何去下载对应版本的Toolkit工具,本人下载的是Toolkit 12.2

下载地址:https://developer.nvidia.com/cuda-toolkit-archive

在这里插入图片描述

下载完毕后打开cuda_12.2.2_windows_network.exe,这里会让你指定一个临时目录这个目录用于存放临时文件的,安装Toolkit 成功后会自动卸载

注意临时目录不要和安装目录指定相同位置,假如指定了相同位置后面是无法安装的

在这里插入图片描述

选择路径时可以切换到自定义的安装路径

路径最好和工具中一致,参考路径D:\NVIDIA CUDA\NVIDIA GPU Computing Toolkit\CUDA\v版本号

在这里插入图片描述

安装完后后我们需要添加CUDA环境变量

在这里插入图片描述

在这里插入图片描述

安装完毕后通过nvcc -V测试是否安装成功

在这里插入图片描述

CUDNN安装(核显跳过此步骤)

Cudnn是NVIDIA提供的一个深度神经网络加速库,它包含了一系列高性能的基本函数和算法,用于加速深度学习任务的计算,它可以与Cuda一起使用,提供了针对深度学习任务的高效实现。

下载地址:https://developer.nvidia.com/cudnn-downloads

选择对应CUDA版本下载,这里下载压缩包

在这里插入图片描述

下载完毕后将压缩包解压,将解压内容直接复制粘贴到CUDA安装目录下,本人安装目录是D:\NVIDIA CUDA\NVIDIA GPU Computing Toolkit\CUDA\v12.1

在这里插入图片描述

粘贴完毕后打开命令行执行nvidia-smi看到如下内容表示安装成功

在这里插入图片描述

Anaconda创建虚拟环境

#创建一个名为pytorch,python版本3.8的虚拟环境
conda create -n pytroch2.3.0 python=3.8
#切换到当前环境
conda activate pytroch2.3.0
#查看本机支持的CUDA版本(核显跳过)
nvidia-smi
#安装pytorch
#官网https://pytorch.org/get-started/locally/
#下载对应CUDA版本的pytorch(独显电脑执行该命令)
#如果与下载很慢,可以分开下载
conda install pytorch torchvision torchaudio pytorch-cuda=12.1 -c pytorch -c nvidia
#下载对应CUDA版本的pytorch(核显电脑执行该命令)
conda install pytorch torchvision torchaudio cpuonly -c pytorch

测试PyTroch

在包都安装完毕后执行如下命令没有任何报错表示安装成功

#进入python命令行
python
#引入torch
import torch
#测试cuda(核显返回False,独显返回True)
torch.cuda.is_available()

编辑器选择

在开发过程中需要使用到2款编辑器,分别是PyCharm和Jupyter

PyCharm

PyCharm:https://www.jetbrains.com.cn/pycharm/download/

安装完毕后再PyCharm中Settings中找到Python Interpreter并且选择Add Interpreter将Conda添加进来,这样项目就可以选择指定Conda的环境运行

在这里插入图片描述

Jupyter

安装Anaconda时会顺便安装了Jupyter,但是Jupyter默认是Base环境,接下来我们需要在前面创建好的pytroch2.3.0环境下安装Jupyter

#切换到pytroch2.3.0
conda activate pytroch2.3.0
#安装Jupyter
conda install nb_conda
#安装完毕,
jupyter notebook

启动成功后创建一个文件,切换环境,执行测试代码

在这里插入图片描述

常用类库

Dataset

Pytroch提供Dataset用于存放数据集,使用方式很简单编写一个类继承Dataset,实现init、getitem、len方法即可简单使用Dataset,以下就是一个Dataset的简单使用

from torch.utils.data import Dataset
from PIL import Image
import osclass MyData(Dataset):#构造函数def __init__(self,root_dir,label_dir):self.root_dir = root_dirself.label_dir = label_dir#文件路径self.path = os.path.join(self.root_dir,self.label_dir)#图片列表self.img_path = os.listdir(self.path)#获取图片下标    def __getitem__(self, item):img_name = self.img_path[item]img_item_path = os.path.join(self.root_dir,self.label_dir,img_name)img = Image.open(img_item_path)label = self.label_dirreturn img,label#获取长度def __len__(self):return len(self.img_path)root_dir = 'E:\\Python-Project\\Torch-Demo\\dataset\\train'
#蚂蚁数据集
ants_label_dir = 'ants_image'
ants_dataset = MyData(root_dir,ants_label_dir)
#蜜蜂数据集
bees_label_dir = 'bees_image'
bees_dataset = MyData(root_dir,bees_label_dir)
#合并2个数据集
train_dataset = ants_dataset + bees_dataset

transforms

transforms是神经网络中一个非常重要的库,它提供了将数据转换为Tensor类型数据,Tensor包装了神经网络的数据参数如数据网络的数据格式、梯度、梯度方法等,并且transforms包含了很多操作数据的库可以对Tensor数据进行各种修改

from PIL import Image
from torch.utils.tensorboard import SummaryWriter
from torchvision import transformswriter = SummaryWriter('logs')img_path = "data/train/ants_image/0013035.jpg"
img = Image.open(img_path)
#将图片转换为tensor类型
trans_totensor = transforms.ToTensor()
img_tensor = trans_totensor(img)
writer.add_image("ToTensor", img_tensor)#对tensor进行进行归一化,减少不同图片的色彩的差值,提升训练效果
#规划的计算公式 output[channel] = (input[channel] - mean[channel]) / std[channel]
print(img_tensor[0][0][0])
trans_norm = transforms.Normalize([0.5, 0.5, 0.5], [0.5, 0.5, 0.5])
img_norm = trans_norm(img_tensor)
print(img_norm[0][0][0])
writer.add_image("Normalize", img_norm)#对PIL图片大小修改
trans_resize = transforms.Resize((512, 512))
img_resize = trans_resize(img)
img_resize = trans_totensor(img_resize)
writer.add_image("Resize", img_resize)#对PIL图片进行整体缩放
trans_resize_2 = transforms.Resize(512)
trans_compose = transforms.Compose([trans_resize_2,trans_totensor])
img_resize_2 = trans_compose(img)
writer.add_image("Resize", img_resize_2,1)#对PIL图片进行随机裁剪
trans_random = transforms.RandomCrop((128,128))
trans_compose_2 = transforms.Compose([trans_random,trans_totensor])
for i in range(10):img_crop = trans_compose_2(img)writer.add_image("RandomCrop", img_crop,i)writer.close()

tensorboard

tensorboard提供训练可视化工具,通过图标的方式可以跟踪实验中不同阶段下的指标用于对比

依赖安装
#安装tensorboard可视化工具
conda install tensorboard
启动tensorboard
#--logdir 指定读取的文件目录
#--port 指定服务启动的端口
tensorboard --logdir=logs --port=6007
简单使用案例

以下创建1个函数y=2x,并且将内容输出到tensorboard

from torch.utils.tensorboard import SummaryWriter
#指定日志生成的目录
writer = SummaryWriter("logs")
#往writer写入数据
#参数1:图表名称
#参数2:Y轴值
#参数3:X轴值
for i in range(100):writer.add_scalar("y=2x", 2 * i, i)
#关闭流
writer.close()

在项目目录下使用tensorboard --logdir=logs启动tensorboard

常见问题:

多次重复执行时刷新tensorboard会发现图标很乱,解决方法有2种:

1、将logs下文件生成重新代码重新启动tensorboard

2、每次执行都创建一个新的logs文件,将图标写入新logs文件下

在这里插入图片描述

Dataset下载与转换

结合Dataset和Transforms对数据集进行下载并且转换,PyTorch提供了一些用于练习的数据集可以通过Dataset进行下载,一下就是一个案例

import torchvision
from torch.utils.tensorboard import SummaryWriter#定义一个转换操作,对dataset中的数据集进行操作
dataset_transform = torchvision.transforms.Compose([torchvision.transforms.ToTensor(),
])#训练数据集,CIFAR10是PyTorch提供的一个数据集,会自动去下载
#https://www.cs.toronto.edu/~kriz/cifar.html
train_set = torchvision.datasets.CIFAR10(root="./dataset",train=True,transform=dataset_transform,download=True)
#测试数据集
test_set = torchvision.datasets.CIFAR10(root="./dataset",train=False,transform=dataset_transform,download=True)#使用tensorboard显示数据集合,显示前面10张
writer = SummaryWriter("p10")
for i in range(10):img,target = test_set[i]writer.add_image("test_set",img,i)writer.close()

DataLoader

Dataset是数据集,那么需要获取数据集的数据那么就需要用到DataLoader,DataLoader可以将数据集安装指定规则分批、打乱后重新组合成一批一批的数据

import torchvision
from torch.utils.data import DataLoader
from torch.utils.tensorboard import SummaryWriter#测试数据集
test_data = torchvision.datasets.CIFAR10(root="./dataset",train=False,transform=torchvision.transforms.ToTensor(),download=True)
#加载数据集,batch_size=4每获取4张数据为一组,shuffle=True乱序获取
#加载完毕后元组(图片集合,标签集合)
test_loader = DataLoader(dataset=test_data,batch_size=4,shuffle=True,num_workers=0,drop_last=False)#打印Dataloader
writer = SummaryWriter("dataloder")
step = 0
for data in test_loader:imgs,targets = datawriter.add_images("test_data",imgs,step)step = step + 1
writer.close()

使用tensorboard --logdir=dataloder在控制台查看加载好的数据集

在这里插入图片描述

神经网络

PyTorch封装了很多神经网络的类库,文档地址 https://pytorch.org/docs/stable/nn.html

卷积神经网络(NN)

卷积层

卷积神经网络具体的计算过程可以参考:https://github.com/vdumoulin/conv_arithmetic/blob/master/README.md

在这里插入图片描述

结合上图与参考地址中的动图案例可以总结出在计算过程中有几个重要参数:

  1. 输入(二维数组)
  2. 卷积核每次计算后移动的步长(stride)
  3. 是否对图像边填充,而增加图像大小(padding)
  4. 输出(二维数组)
import torch
import torch.nn.functional as F
#输入图像
input = torch.tensor([[1,2,0,3,1],[0,1,2,3,1],[1,2,1,0,0],[5,2,3,1,1],[2,1,0,1,1]
])
#卷积核
kernel = torch.tensor([[1,2,1],[0,1,0],[2,1,0]
])
#尺寸切换
input = torch.reshape(input,(1,1,5,5))
kernel = torch.reshape(kernel,(1,1,3,3))
#使用卷积核对图像进行卷积,卷积和在图像中滑动的步长1,可获得一个3X3输出
output = F.conv2d(input,kernel,stride=1,padding=0)
print(output)#使用卷积核对图像进行卷积,卷积和在图像中滑动的步长2,可获得一个3X3输出
output2 = F.conv2d(input,kernel,stride=2,padding=0)
print(output2)#使用卷积核对图像进行卷积,卷积和在图像中滑动的步长1,对图像外面填充一圈0的数据图像将变成7X7,可获得一个5X5输出
# [0, 0, 0, 0, 0, 0, 0]
# [0, 1, 2, 0, 3, 1, 0]
# [0, 0, 1, 2, 3, 1, 0]
# [0, 1, 2, 1, 0, 0, 0]
# [0, 5, 2, 3, 1, 1, 0]
# [0, 2, 1, 0, 1, 1, 0]
# [0, 0, 0, 0, 0, 0, 0]
output3 = F.conv2d(input,kernel,stride=1,padding=1)
print(output3)

案例

将PyTorch测试数据集CIFAR10下载下来,利用Conv2d对数据集中的图片进行卷积,卷积核大小为3x3,步长为1,输出6通道

import torch
import torchvision
from torch import nn
from torch.utils.data import DataLoader
from torch.utils.tensorboard import SummaryWriter#使用测试集训练,以为训练集合数据太多了
dataset = torchvision.datasets.CIFAR10(root='./dataset', train=False, transform=torchvision.transforms.ToTensor(),download=True)
#加载数据
dataloader = DataLoader(dataset,batch_size=64)
#定义一个训练模型
class MyModel(nn.Module):def __init__(self):super(MyModel, self).__init__()#定义一个的卷积方法#参数1:输入3个通道的数据(图片又RBG 3个通道组成)#参数2:输出为6个通道的数据(进行6次卷积计算结果集堆叠在一起)#参数3:卷积核大小3X3#参数4:卷积核每次计算后移动步长1#参数5:不对图像边进行填充self.conv1 = nn.Conv2d(in_channels=3, out_channels=6, kernel_size=3,stride=1,padding=0)def forward(self, x):#对数据进行卷积x = self.conv1(x)return xmy_model = MyModel()writer = SummaryWriter('./logs_conv2d')
step = 0
#计算DataLoader中的每一组数据
for data in dataloader:imgs,targets = dataoutput = my_model(imgs)#torch.Size([64, 3, 32, 32])# print(imgs.shape)#torch.Size([64, 6, 30, 30])# print(output.shape)writer.add_images("input",imgs,step)#由于6个通道在tensorboard无法显示,强行转换为3个通道,参数1填写-1会根据后面的数自动推算output = torch.reshape(output,(-1,3,30,30))writer.add_images("output",output,step)step = step + 1writer.close()
最大池化核心层

最大池化的目的是将图像中的特质保留将图像缩小,比如一张5x5的图片池化后变成2x2的这样可以缩小图片提高计算过程

最大池化核,在每一片被池化核覆盖的区域内获取一个最大的值作为结果写入到结果集中,默认没获取完后池化核移动步长等于池化核大小

  1. Ceil_model=True:池化核覆盖区域超出图像范围时也要获取最大值
  2. Ceil_model=False:只获取池化核覆盖区域在图像范围内的最大值,超出范围的值丢弃

在这里插入图片描述

案例

将PyTorch测试数据集CIFAR10下载下来,对数据集进行池化

import torchvision
from torch import nn
from torch.nn import MaxPool2d
from torch.utils.data import DataLoader
from torch.utils.tensorboard import SummaryWriter
#使用测试集训练,以为训练集合数据太多了
dataset = torchvision.datasets.CIFAR10(root='./dataset', train=False, download=True, transform=torchvision.transforms.ToTensor())
#加载数据
dataloader = DataLoader(dataset,batch_size=64)
#定义一个训练模型
class MyModel(nn.Module):def __init__(self):super(MyModel, self).__init__()#定义最大池化的规则#参数1:池化核3x3#参数2:磁化核溢出部分是否保留self.maxpool1 = MaxPool2d(kernel_size=3,ceil_mode=False)def forward(self, input):#对数据进行池化output = self.maxpool1(input)return outputmy_model = MyModel()writer = SummaryWriter('./logs_maxpool')
step = 0
#计算DataLoader中的每一组数据
for data in dataloader:imgs,targets = datawriter.add_images("input",imgs,step)output = my_model(imgs)writer.add_images("output",output,step)step += 1writer.close()
非线性激活

默认的图像都是线性的训练出来的模型就很死版,对数据集进行非线性集合后训练模型可以训练出符合各种曲线各种特征的模型

import torchvision
from torch import nn
from torch.nn import ReLU, Sigmoid
from torch.utils.data import DataLoader
from torch.utils.tensorboard import SummaryWriterdataset = torchvision.datasets.CIFAR10(root='./dataset', train=False, download=True, transform=torchvision.transforms.ToTensor())
#加载数据
dataloader = DataLoader(dataset,batch_size=64)
class MyModel(nn.Module):def __init__(self):super(MyModel, self).__init__()#最简单的非线性激活,把数据中负数变为0(图像场景下不明显)self.relu1 = ReLU()#Sigmoid函数计算,输出值介于0-1之间self.sigmoid1 = Sigmoid()def forward(self, input):output = self.sigmoid1(input)return outputmy_model = MyModel()writer = SummaryWriter('./logs_relu')
step = 0
#计算DataLoader中的每一组数据
for data in dataloader:imgs,targets = dataoutput = my_model(imgs)writer.add_images("input",imgs,step)writer.add_images("output",output,step)step = step + 1writer.close()

网络模型搭建

PyTorch中的模型

PyTorch中提供了很多以实现的模型有的时候直接使用PyTorch的模型就可完成我们的需求,不需要直接去编写模型,官方文档中包含了完整的实例,例如图像处理模型地址如下:https://pytorch.org/vision/stable/models.html#classification

基于VGG16修改模型

在很多的需求的实现过程都拿vgg16作为前置的模型,在vgg16的基础上进行修改,以下就是基于vgg16模型修改适应CIFAR10数据集

import torchvision.datasets
from torch import nndataset = torchvision.datasets.CIFAR10(root='./dataset', train=False, transform=torchvision.transforms.ToTensor(),download=True)#获取一个已经训练过的vgg16模型,这会下载一个包
vgg16_true = torchvision.models.vgg16(pretrained=True)
#获取一个没有训练过的vgg16模型
vgg16_false = torchvision.models.vgg16(pretrained=False)
#打印vgg16模型
print(vgg16_true)#vgg16默认是输出1000个结果,CIFAR10数据集结果只有10类,让vgg16模型适应CIFAR10,操作方式有2种
#1. 在vgg16基础上添加一层线性层
vgg16_true.classifier.add_module("add_linear", nn.Linear(1000, 10))
print(vgg16_true)
#2. 直接修改第六层的逻辑
vgg16_false.classifier[6] = nn.Linear(4096, 10)
print(vgg16_false)

模型的保存与加载

import torch
import torchvision#获取一个没有训练过的vgg16模型
vgg16 = torchvision.models.vgg16(pretrained=False)
#保存方式1:保存模型结构+参数文件
torch.save(vgg16,"vgg16_method1.pth")
#保存方式2:保存模型的参数(官方推荐)
torch.save(vgg16.state_dict(),"vgg16_method2.pth")#加载模型结构+参数文件(方式1加载时要有该网络模型的对象才能加载成功)
model = torch.load("vgg16_method1.pth")
print(model)
#加载模型的参数(官方推荐)
dict = torch.load("vgg16_method2.pth")
vgg16 = torchvision.models.vgg16(pretrained=False)
vgg16.load_state_dict(dict)
print(model)

CIFAR10分类模型案例

编写一段网络模型对CIFAR10中的数据集进行分类,最后输入一张图片得到分类,模型的搭建流程图像

在这里插入图片描述

import torchvision
from torch.nn import Sequential, Conv2d, MaxPool2d, Flatten, Linear
from torch.utils.data import DataLoader
from torch.utils.tensorboard import SummaryWriterfrom model import *
#定义训练的设备
device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")
#准备数据集
train_data = torchvision.datasets.CIFAR10(root='./dataset', train=True, download=True,transform=torchvision.transforms.ToTensor())
test_data = torchvision.datasets.CIFAR10(root='./dataset', train=False, download=True,transform=torchvision.transforms.ToTensor())#获得数据集的长度
train_data_size = len(train_data)
test_data_size = len(test_data)
print("训练数据集的长度为:{}".format(train_data_size))
print("测试数据集的长度为:{}".format(test_data_size))#利用DataLoader加载数据集
train_dataloader = DataLoader(train_data, batch_size=64)
test_dataloader = DataLoader(test_data, batch_size=64)#创建网络模型
my_model = MyModel()
my_model = my_model.to(device)  #使用GPU训练
#损失函数
loss_fn = nn.CrossEntropyLoss()
loss_fn = loss_fn.to(device) #使用GPU训练
#优化器
learning_rate = 0.001
optimizer = torch.optim.SGD(my_model.parameters(), learning_rate)#设置训练网络的参数
total_train_step = 0 #训练的次数
total_test_step = 0  #测试的测试
epochs = 10          #训练轮数#添加tensorboard
writer = SummaryWriter('./logs_train')for i in range(epochs):print("--------------------第{}轮训练开始--------------------".format(i+1))#训练集数据my_model.train()for data in train_dataloader:imgs,targets = dataimgs = imgs.to(device) #使用GPU训练targets = targets.to(device) #使用GPU训练outputs = my_model(imgs)#计算损失函数loss = loss_fn(outputs, targets)#使用优化器优化模型optimizer.zero_grad()loss.backward()optimizer.step()#记录训练次数total_train_step += 1if total_train_step % 100 == 0: #每逢100才打印print("训练次数:{},Loss:{}".format(total_train_step, loss.item()))writer.add_scalar("train_loss",loss.item(),total_train_step)#测试步骤开始my_model.eval()total_test_loss = 0total_accuracy = 0with torch.no_grad():for data in test_dataloader:imgs,targets = dataimgs = imgs.to(device)  # 使用GPU训练targets = targets.to(device)  # 使用GPU训练outputs = my_model(imgs)loss = loss_fn(outputs, targets)total_test_loss += loss.item()accuracy = (outputs.argmax(1) == targets).sum()total_accuracy += accuracy.item()print("整体测试集上的Loss:{}".format(total_test_loss))print("整体测试集上的准确率:{}".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(my_model,"./pth/my_model_{}.pth".format(i))print("模型已保存")writer.close()

编写测试程序加载训练好的模型,识别

在这里插入图片描述

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

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

相关文章

Vue2+Element实现Excel文件上传下载预览【超详细图解】

目录 一、需求背景 二、落地实现 1.文件上传 图片示例 HTML代码 业务代码 2.文件下载 图片示例 方式一:代码 方式二:代码 3.文件预览 图片示例 方式一:代码 方式二:代码 一、需求背景 在一个愉快的年后&#xff…

【Bug】natten:安装报错(临近注意力机制的高效cuda内核实现)

正常安装natten报错 pip install natten 报错 可以尝试使用以下网站进行安装 https://shi-labs.com/natten/ 可以根据自己的cuda与pytorch版本进行安装 之间复制命令即可,不需要进行任何修改

win10把c盘docker虚拟硬盘映射迁移到别的磁盘

c盘空间本身就比较小、如果安装了docker服务后,安装的时候没选择其他硬盘,虚拟磁盘也在c盘会占用很大的空间,像我的就三十多个G,把它迁移到其他磁盘一下子节约几十G 1、先输入下面命令查看 docker 状态 wsl -l -v 2、如果没有停止…

动态内容加载的解决方案:Selenium与Playwright对比故障排查实录

方案进程 2024-09-01 09:00 | 接到亚航航班数据采集需求 2024-09-01 11:30 | 首次尝试使用Selenium遭遇Cloudflare验证 2024-09-01 14:00 | 切换Playwright方案仍触发反爬机制 2024-09-01 16:30 | 引入爬虫代理IPUA轮换策略 2024-09-02 10:00 | 双方案完整实现并通过压力测试故…

MaxKB上架至阿里云轻量应用服务器镜像市场

近日,MaxKB开源知识库问答系统已上架至阿里云轻量应用服务器镜像市场,目前是阿里云此类镜像市场中唯一推荐的AI应用镜像。 ▲图1 MaxKB已经上架至阿里云轻量应用服务器镜像市场 MaxKB是飞致云旗下开源项目,是一款基于大语言模型和RAG&…

string类详解(下)

文章目录 4. string类的模拟实现4.1 构造 析构4.2 c_str4.3 下标遍历4.4 迭代器4.5 插入4.6 删除4.7 查找4.8 赋值4.9 交换4.10 提取子串4.11 比较大小4.12 流插入 && 流提取 5. 现代版写法的String类5.1 完整代码 6. 写时拷贝(了解) 4. string…

win11本地部署deepseek大模型(安装ollama+docker+open-webui)最终实现自己的项目可通过API调用投喂数据后的模型

硬件配置:笔记本win11,内存32G,CPU锐龙7 ,无独显;只能考虑deepseek-r1:1.5b模型。 第一步:安装Ollama 此处不过多累赘了,https://ollama.com/官网选择对应的系统版本下载即可。 需要注意的是…

WebSocket简单介绍 并接入deepseek

目录 什么是 WebSocket?工作原理: 为什么需要 WebSocket?WebSocket 的优势HTTP 和 WebSocket 的区别WebSocket 的劣势WebSocket 的应用场景WebSocket 握手过程1. 客户端发起握手请求2. 服务器响应握手请求3. 建立连接 WebSocket 事件处理WebS…

order by布尔盲注、时间盲注

pdo防御下,order by、limit不能参数绑定,可以进行sql注入 案例:靶场的less-46 布尔盲注: import requests from lxml import htmldef get_id_one(URL, paload):res requests.get(urlURL, paramspaload)tree html.fromstring(…

Visual Studio Code 跨平台安装与配置指南(附官方下载链接)

一、软件定位与核心功能 Visual Studio Code(简称VS Code)是微软开发的开源跨平台代码编辑器,支持超过50种编程语言的智能补全、调试和版本控制功能。2025版本新增AI辅助编程模块,可自动生成单元测试代码和API文档注释。 二、下载…

解决IDEA使用Ctrl + / 注释不规范问题

问题描述: ctrl/ 时,注释缩进和代码规范不一致问题 解决方式 设置->编辑器->代码样式->java->代码生成->注释代码

项目实践 之 pdf简历的解析和填充(若依+vue3)

文章目录 环境背景最终效果前端讲解左侧模块解析右侧上传模块解析前端步骤 后端讲解代码前端 环境背景 若依前后端分离框架 vue最后边附有代码哦 最终效果 前端讲解 左侧模块解析 1、左侧表单使用el-form 注意: 1、prop出现的字段,需要保证是该类所…

如何看待 Kaiming He 最新提出的 Fractal Generative Models ?

何恺明团队提出的分形生成模型(Fractal Generative Models) 引发了广泛关注,其核心思想是通过递归调用生成模型模块构建自相似结构,类似数学中的分形概念(如雪花结构),从而高效生成高分辨率数据(如图像)。 Fractal Generative Models即分形生成模型,是一种新型的生成…

Debian系统终端输入ifconfig报错

报错 bash: ifconfig: command not found 原因 Debian 上默认不安装 ifconfig 软件包。这是因为 ifconfig 已被弃用,取而代之的是新的 ip 命令。该 ip 命令现在负责修改或显示路由、网络设备、接口和隧道 如果仍然想使用旧的 ifconfig 命令,则必须显式…

【NLP 27、文本分类任务 —— 传统机器学习算法】

不要抓着枯叶哭泣,你要等待初春的新芽 —— 25.1.23 一、文本分类任务 定义:预先设定好一个文本类别集合,对于一篇文本,预测其所属的类别 例如: 情感分析: 这家饭店太难吃了 —> 正类 …

Lumoz Chain正式上线:AI 时代的新算力破局者

新的叙事和技术突破永远是推动行业前行的核心动力。当下,AI Agent无疑是最炙手可热的赛道之一。 当加密世界将目光投向AI领域时,大多数项目仍停留在以AI为工具或应用场景的层面,试图通过集成AI模型或优化链上功能来吸引用户。然而&#xff0c…

Python - Python连接数据库

Python的标准数据库接口为:Python DB-API,Python DB-API为开发人员提供了数据库应用编程接口。 PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服务器的一个实现库,Python2中则使用mysqldb。 PyMySQL 遵循 Python 数据库 API v2.0 规范&…

面试八股文--数据库基础知识总结(1)

1、数据库的定义 数据库(DataBase,DB)简单来说就是数据的集合数据库管理系统(Database Management System,DBMS)是一种操纵和管理数据库的大型软件,通常用于建立、使用和维护数据库。数据库系统…

关于在java项目部署过程MySQL拒绝连接的分析和解决方法

前言 在最近一次部署项目一次项目部署过程中,由于没有对MySQL数据库的部分权限和远程连接进行授权,导致了在执行项目功能API时,出现MySQL连接异常或MySQL拒绝连接的问题。 问题 以下是部分报错截图: 分析 根据日志提示&#xf…

PhotoLine绿色版 v25.00:全能型图像处理软件的深度解析

在图像处理领域,PhotoLine以其强大的功能和紧凑的体积,赢得了国内外众多用户的喜爱。本文将为大家全面解析PhotoLine绿色版 v25.00的各项功能,帮助大家更好地了解这款全能型的图像处理软件。 一、迷你体积,强大功能 PhotoLine被誉为迷你版的Photoshop,其体积虽小,但功能却…