工程项目建设自学网站举报网站制度建设方面

web/2025/9/26 18:58:15/文章来源:
工程项目建设自学网站,举报网站制度建设方面,有哪个网站可以学做吃的,wordpress吾爱一、overview 基于pytorch的深度学习的四个步骤基本如下#xff1a; 二、线性模型 - Linear Model 基本概念 数据集分为测试集和训练集#xff08;训练集、开发集#xff09;训练集#xff08;x#xff0c;y#xff09;测试集只给#xff08;x#xff09;过拟合#…一、overview 基于pytorch的深度学习的四个步骤基本如下 二、线性模型 - Linear Model 基本概念 数据集分为测试集和训练集训练集、开发集训练集xy测试集只给x过拟合模型学得太多导致性能不好开发集测验模型泛化能力zip从数据集中按数据对儿取出自变量x_val和真实值y_val 本例中进行人工training穷举法定义前向传播函数forward定义损失函数lossMSE平均平方误差zip从数据集中按数据对儿取出自变量x_val和真实值y_val import numpy as np import matplotlib.pyplot as pltx_data [1.0,2.0,3.0] y_data [2.0,4.0,6.0]def forward(x):#定义模型return x * wdef loss(x,y):#定义损失函数y_pred forward(x)return (y_pred - y) * (y_pred - y)w_list[]#权重 mse_list[] for w in np.arange(0.0,4.1,0.1):print(w,w)l_sum 0for x_val,y_val in zip(x_data,y_data):y_pred_val forward(x_val)loss_val loss(x_val,y_val)l_sum loss_valprint(\t,x_val,y_val,y_pred_val,loss_val)print(MSE,l_sum / 3)w_list.append(w)mse_list.append(l_sum / 3)plt.plot(w_list,mse_list) plt.ylabel(Loss) plt.xlabel(w) plt.show()注模型训练可视化 wisdom可视化工具包 三、梯度下降 - Gradient Descent 3.1、梯度下降 基于cost function 即所有样本 如我们想要找到w的最优值 贪心思想每一次迭代得到局部最优往梯度的负方向走梯度下降算法很难找到全局最优但是在深度学习中损失函数中全局最优最有很少出现但会出现鞍点梯度 0 import numpy as np import matplotlib.pyplot as pltw 1.0 x_data [1.0,2.0,3.0] y_data [2.0,4.0,6.0]def forward(x):return x * wdef cost(xs,ys):cost 0for x,y in zip(xs,ys):y_pred forward(x)cost (y_pred-y)**2return cost / len(xs)def gradient(xs,ys):grad 0for x,y in zip(xs,ys):grad 2 * x * ( x * w - y)return grad / len(xs)epoch_list[] cost_list[] print(Predict (before training),4,forward(4)) for epoch in range(100):cost_val cost(x_data,y_data)grad_val gradient(x_data,y_data)w - 0.01 * grad_valprint(Epoch,epoch,w,w,loss,cost_val)epoch_list.append(epoch)cost_list.append(cost_val) print(Predict (after training),4,forward(4))print(Predict (after training),4,forward(4)) plt.plot(epoch_list,cost_list) plt.ylabel(Loss) plt.xlabel(epoch) plt.show()注训练过程会趋近收敛若生成图像局部震荡很大可以进行指数平滑若图像发散则训练失败通常原因是因为学习率过大 3.2、随机梯度下降 Stochastic Gradient Descent 基于单个样本的损失函数 —— 因为函数可能存在鞍点使用一个样本就引入了随机性 此时梯度更新公式为 与之前的区别 cost改为loss梯度求和变为单个样本训练过程中要对每一个样本求梯度进行更新由于两个样本的梯度下降不能并行化时间复杂度太高所以折中的方式使用 Mini-Batch 批量随机梯度下降若干个一组后续将会涉及 import numpy as np import matplotlib.pyplot as pltw 1.0 x_data [1.0,2.0,3.0] y_data [2.0,4.0,6.0]def forward(x):return x * wdef loss(x,y):y_pred forward(x)return (y_pred-y)**2def gradient(x,y):return 2 * x * (x * w - y)loss_list[] epoch_list[] print(Predict (before training),4,forward(4))for epoch in range(100):for x,y in zip(x_data,y_data):grad gradient(x,y)w w - 0.01 * gradprint(\tgrad,x,y,grad)l loss(x,y)loss_list.append(l)epoch_list.append(epoch)print(progress,epoch,w,w,loss,l)print(Predict (after training),4,forward(4)) plt.plot(epoch_list,loss_list) plt.ylabel(Loss) plt.xlabel(epoch) plt.show()四 、反向传播 - BackPropagation 对于复杂的网络 举例来讲两层神经网络 若进行线性变换不管多少层最终都可以统一成一种形式但为了让你不能在化简即提高模型复杂程度所以我们要对每一层最终的输出 加一个非线性的变化函数比如sigmiod 则层层叠加若需要求梯度的话就要用到  —— 链式求导 1、构建计算图 —— 前馈计算Forward先计算最终的loss 2、反馈Backward 来看一下最简单的线性模型中的计算图的计算过程 在pytorch中使用tensor类型的数据 import torch import matplotlib.pyplot as pltx_data [1.0,2.0,3.0] y_data [2.0,4.0,6.0]w torch.Tensor([1.0]) #注意这里一定要加[] 权重初始值 w.requires_grad Truedef forward(x):return x * w #因为w是Tensor这里的运算符已经被重载了x会进行自动转换即构造了计算图def loss(x,y):y_pred forward(x)return (y_pred - y) ** 2epoch_list [] loss_list [] print(Predict (before training),4,forward(4))for epoch in range(100):#sum0for x,y in zip(x_data,y_data):l loss(x,y) #只要一做backward计算图会释放会准备下一次的图l.backward()print(\tgrad:,x,y,w.grad.item()) #item将梯度数值直接拿出来为标量w.data w.data - 0.01 * w.grad.data #grad必须要取到data#sum l 但l为张量计算图进行加法计算会构造计算图将会发生溢出w.grad.data.zero_() #权重里面梯度的数据必须显式清零print(progress,epoch,l.item())epoch_list.append(epoch)loss_list.append(l.item())print(Predict (after training),4,forward(4)) plt.plot(epoch_list,loss_list) plt.ylabel(Loss) plt.xlabel(epoch) plt.show() 五、利用PyTorch实现线性回归模型 - Linear Regression With PyTorch pytorch神经网络四步走 1、构建数据集2、设计模型用来计算y_hat3、构建损失函数和优化器我们使用pytorch封装的API4、训练周期前馈 反馈 更新 本例将使用 Mini-Batchnumpy有广播机制矩阵相加会自动扩充。 使用pytorch的关键就不在于求梯度了而是构建计算图这里使用仿射模型也叫线性单元。 代码实现 import torch import matplotlib.pyplot as plt# 1、准备数据 x_data torch.Tensor([[1.0],[2.0],[3.0]]) y_data torch.Tensor([[2.0],[4.0],[6.0]])# 2、构建模型 class LinearModel(torch.nn.Module):def __init__(self): #构造函数super(LinearModel,self).__init__()self.linear torch.nn.Linear(1,1) #构造一个对象def forward(self,x):y_pred self.linear(x) #实现可调用对象return y_predmodel LinearModel()# 3、构造损失函数和优化器 criterion torch.nn.MSELoss(size_averageFalse) #继承nn.Module是否求平均 optimizer torch.optim.SGD(model.parameters(),lr0.01) #是一个类不继承nn.Module不会构建计算图lr学习率epoch_list [] loss_list []for epoch in range(100):# 前馈 计算 y_haty_pred model(x_data)# 前馈 计算损失loss criterion(y_pred,y_data) #loss标量print(epoch,loss) # loss是一个对象打印将会自动调用__str__()optimizer.zero_grad() # 所有权重梯度归零# 反馈 反向传播loss.backward()# 自动更新权重进行更新optimizer.step()epoch_list.append(epoch)loss_list.append(loss.item())# Output weight and bias print(w ,model.linear.weight.item()) print(b ,model.linear.bias.item())# Test Model x_test torch.Tensor([4.0]) y_test model(x_test) print(y_pred ,y_test.data) plt.plot(epoch_list,loss_list)plt.ylabel(Loss) plt.xlabel(epoch) plt.show() 六、逻辑斯蒂回归 - Logistics Regression 逻辑斯蒂回归 —— 虽然叫回归模型但既可解决分类模型也可解决回归模型本节是讲的二分类背景是学习多少小时能够考试通过训练好模型以后直接用来预测4小时的学习能够通过的概率是多大 torchvision提供相应的数据集可以指定需要的数据集train表示需要训练集还是测试集。分类问题我们的输出为概率将线性模型输出的实数空间映射到[0,1]之间logist函数即可完成这个映射。logist函数为饱和函数是sigmoid中最典型的。 其他的sigmoid函数 所以现在我们的模型 对应的loss也要发生改变现在输出的是一个分布不再是一个数值 所以现在相比较的是两个分布之间的差异可以选择用KL散度或者cross-entropy(交叉熵) 交叉熵举例交叉熵越大越好 在本例中我们采用二分类的交叉熵因为加了负号所以这里的loss越小越好称为BCE损失 criterion torch.nn.BCELoss(size_averageFalse) #继承nn.Module是否给每个批量求均值设置与否关键会影响学习率的设置因为如果损失变小了将来求出来的导数也会乘上这个常数 import torchvision import torch.nn.functional as F import torch import matplotlib.pyplot as plt# 1、准备数据 x_data torch.Tensor([[1.0],[2.0],[3.0]]) y_data torch.Tensor([[0],[0],[1]])# 2、构建模型 class LogisticRegressionModel(torch.nn.Module):def __init__(self):super(LogisticRegressionModel,self).__init__()self.linear torch.nn.Linear(1,1)def forward(self,x):y_pred F.sigmoid(self.linear(x))return y_predmodel LogisticRegressionModel()# 3、构造损失函数和优化器 criterion torch.nn.BCELoss(size_averageFalse) #继承nn.Module是否给每个批量求均值 optimizer torch.optim.SGD(model.parameters(),lr0.01) #是一个类不继承nn.Module不会构建计算图lr学习率epoch_list [] loss_list []for epoch in range(1000):# 前馈 计算 y_haty_pred model(x_data)# 前馈 计算损失loss criterion(y_pred,y_data) #loss标量print(epoch,loss) # loss是一个对象打印将会自动调用__str__()optimizer.zero_grad() # 所有权重梯度归零# 反馈 反向传播loss.backward()# 自动更新权重进行更新optimizer.step()epoch_list.append(epoch)loss_list.append(loss.item())# Output weight and bias print(w ,model.linear.weight.item()) print(b ,model.linear.bias.item())# Test Model x_test torch.Tensor([4.0]) y_test model(x_test) print(y_pred ,y_test.data) plt.plot(epoch_list,loss_list)plt.ylabel(Loss) plt.xlabel(epoch) plt.show() 七、处理多维特征的输入 - Multiple Dimension lnput 引例糖尿病数据集分类任务 行称为样本(Sample)      数据库中称为记录(record) 列称为特征                   数据库中称为字段 注sklearn中提供一个关于糖尿病的数据集可作为回归任务的数据集 Mlultiple Dimension Loqistic Regression Model x可以看成一个向量每一个x都要和w进行相乘我们就可以写成图中上面的红色部分因为标量的转置还是他自身为了方便演示我们可以写成转置的形式。 即 再来看下Mini-Batch(N samples)的情况 为什么这里要将方程运算转换成矩阵运算 即 向量形式呢 ———— 我们可以利用并行运算的能力提高运行速度。 则只需将上一节的代码中数据准备和构建模型进行修改即可 Logistics回归只有一层神经网络若我们构造一个多层神经网络 将矩阵看成一种空间变换的函数这里的(8,2)是指将一个任意八维空间的向量映射到一个二维空间上注意是线性的而我们所做的空间变换不一定是线性的 所以我们想要多个线性变换层通过找到最优的权重把他们组合起来来模拟一个非线性变换 注意绿色框中我们引入的 即激活函数 在神经网络中我们通过引入激活函数给线性变换加入非线性操作这样就使得我们可以去拟合相应的非线性变换。 对于本例 我们使用 Example: Artificial Neural Network 1、建立数据集 import numpy as np import torchxy np.loadtxt(./dataset/diabetes.csv.gz, delimiter,, dtypenp.float32) x_data torch.from_numpy(xy[:, :-1]) y_data torch.from_numpy(xy[:, [-1]]) 分隔符为为什么用float32因为常用游戏显卡只支持32位浮点数只有特别贵的显卡才支持64位由于课程中导入的数据是anaconda安装工具包中的自带的压缩文本数据所以直接采用numpy中的loadtxt读取这个函数可以直接读取Linux下压缩的格式此处是.gz因为我们的x和y是放在一起的所以 -1表示不要最后一列 → 拿出来前八列注意y所有行拿出来需要加中括号拿出来矩阵 → 拿出最后一列 2、模型建立 class Model(torch.nn.Module):def __init__(self):super(Model, self).__init__()self.linear1 torch.nn.Linear(8, 6)self.linear2 torch.nn.Linear(6, 4)self.linear3 torch.nn.Linear(4, 1)self.sigmoid torch.nn.Sigmoid()def forward(self, x):x self.sigmoid(self.linear1(x))x self.sigmoid(self.linear2(x))x self.sigmoid(self.linear3(x))return xmodel Model()注意上次调用的是nn.Function下的sigmoid但是这里调用的是nn下的一个模块forward函数中如果是一串就用一个x上面的输出是下面的输入 3、构造损失函数和优化器 criterion torch.nn.BCELoss(size_averageTrue) optimizer torch.optim.SGD(model.parameters(), lr0.1) 4、模型训练虽然是mini-batch的风格 但这里还是全部数据下一节会涉及 for epoch in range(100):# forwardy_pred model(x_data)loss criterion(y_pred, y_data)print(epoch, loss.item())# backwordoptimizer.zero_grad()loss.backward()# updateoptimizer.step()可以尝试不同的激活函数对结果的影响 torch.nn — PyTorch 2.1 documentation Visualising Activation Functions in Neural Networks - dashee87.github.io 注意Relu函数取值是0到1如果最后的输入是小于0的那么最后输出会是0但我们可能会算In0所以一般来说会将最后一层的激活函数改成sigmoid。 八、加载数据集 - Dataset and DataLoader Dataset加载数据集支持我们以索引方式拿出样本Dataloader拿出一组Mini-Batch快速使用 三个概念EpochBatch-sizeIterations 若使用Mini-Batch我们的训练循环要写成嵌套循环 外层循环每一寸循环是一次epoch训练周期内层循环每一次循环执行一个batch对batch进行迭代Epoch所有的样本都进行了一次训练Batch-Size每一次训练的样本数量IterationBatch分了多少个即内层迭代了多少次 Dataloader 分组并做成可迭代的batch dataset抽象类 不可实例化dataloader可以实例化数据集类里面有三个函数这三个函数较为固定分别自己的作用 继承Dataset后我们必须实现三个函数 __len__()帮助我们返回数据集大小getitem__()帮助我们通过索引找到某个样本__init__()是初始化函数之后我们可以提供数据集路径进行数据的加载 Dataset的 init 中如果数据量较少可以导入所有的数据若数据较大图像、语音无结构数据 import numpy as np import torch from torch.utils.data import Dataset from torch.utils.data import DataLoader import matplotlib.pyplot as pltepoch_list [] loss_list []class DiabetesDataset(Dataset):def __init__(self,filepath):xy np.loadtxt(filepath, delimiter,, dtypenp.float32)self.len xy.shape[0] #(n,9)self.x_data torch.from_numpy(xy[:, :-1])self.y_data torch.from_numpy(xy[:, [-1]])def __getitem__(self, index):return self.x_data[index],self.y_data[index]def __len__(self):return self.lendataset DiabetesDataset(D:\python_project\diabetes.csv.gz) train_loader DataLoader(datasetdataset,batch_size32,shuffleTrue,num_workers1)class Model(torch.nn.Module):def __init__(self):super(Model, self).__init__()self.linear1 torch.nn.Linear(8, 6)self.linear2 torch.nn.Linear(6, 4)self.linear3 torch.nn.Linear(4, 1)self.sigmoid torch.nn.Sigmoid()def forward(self, x):x self.sigmoid(self.linear1(x))x self.sigmoid(self.linear2(x))x self.sigmoid(self.linear3(x))return xmodel Model()criterion torch.nn.BCELoss(reductionmean) optimizer torch.optim.SGD(model.parameters(), lr0.01)if __name__ __main__:for epoch in range(100):for i,data in enumerate(train_loader,0):print(1)# 1、准备数据inputs, labels data# 2、前馈y_pred model(inputs)loss criterion(y_pred,labels)print(epoch,i,loss.item())# 3、反馈optimizer.zero_grad()loss.backward()# 4、更新optimizer.step()epoch_list.append(epoch)loss_list.append(loss.item())plt.plot(epoch_list,loss_list)plt.ylabel(Loss)plt.xlabel(epoch)plt.show() 不是我结果怎这样 更多数据集 九、多分类问题 - Softmax分类器 Sigmoid函数主要用于解决二分类问题它的特性在于将输入值映射到0和1之间的概率值。然而在多类别问题中我们需要将输入值映射到多个不同的类别上而不仅仅是0和1。如果我们尝试使用sigmoid函数来解决多类别问题我们需要将其进行扩展以支持多个类别。一种常见的方法是使用一对多One-vs-Rest策略其中针对每个类别训练一个独立的二分类模型。然后我们可以使用sigmoid函数将每个模型的输出转换为概率值。然而这种方法存在一些问题。首先由于每个模型都是独立训练的可能会导致类别之间存在冲突或重叠。其次sigmoid函数在处理极端情况时接近0或1容易饱和这可能会导致梯度消失或梯度爆炸问题对模型的训练造成困难。因此为了解决多类别问题通常会使用其他适合的函数如Softmax函数。Softmax函数可以将输入值映射到多个类别的概率分布同时保持概率之和为1。这样我们可以更好地处理多类别问题并避免sigmoid函数的限制。 Softmax层 因为只有一项结果会为0所以在算Loss时只算一项即可。 在pytorch中 具体例子 反看之前的题目 lmplementation of classifier to MNIST dataset ToTenser神经网络想要的输入比较小所以原始图像需要转变成一个图像张量         Normalize标准化 切换到 0,1 分布 参数为 均值 标准差类似四六级成绩因为我们选用小批量所以这里的N表示每个批量N个样本每个样本都是一维28x28的图像则输入为四阶张量但在全连接神经网络中要求输入必须是矩阵所以需要将1x28x28这个三阶张量 变为 一阶的向量则只要将图像的每一行拼起来即可一行即为784个元素所以可以使用view函数将输入变为二阶张量第一个参数为-1将来会自动算出对应值最后得到 Nx784 的矩阵注意最后一层不做激活 为什么每一层Linear层后都要加一层激活函数 在神经网络中每一层后加入激活函数有几个主要原因 引入非线性线性层只是对输入进行线性变换无法处理复杂的非线性关系。通过添加激活函数可以引入非线性使得神经网络能够学习更加复杂的特征和模式。 增强模型表达能力激活函数可以增加模型的表达能力使其能够适应更广泛的数据分布和任务。通过非线性变换激活函数可以将输入映射到更高维度的特征空间从而提取更多的有用信息。 解决梯度消失问题线性层的堆叠容易导致梯度逐渐消失的问题。激活函数的使用可以帮助传播梯度避免梯度在深层网络中过早地衰减。这对于训练深层神经网络至关重要。 使输出范围有限某些激活函数例如sigmoid函数、tanh函数可以将输出值限制在特定的范围内例如[0,1]或[-1,1]这有助于解决回归或分类问题中的数值稳定性和收敛性问题。 需要注意的是并非所有层都需要添加激活函数。例如在输出层进行回归任务时可以选择不使用激活函数或者使用恒等函数作为激活函数。在某些特定的网络架构中也可能会采用其他类型的层如BatchNormalization层、MaxPooling层来替代激活函数的作用。 代码实现 import torch from torchvision import transforms from torchvision import datasets from torch.utils.data import DataLoader import torch.nn.functional as F import torch.optim as optim# 1、数据准备 batch_size 64 transform transforms.Compose([transforms.ToTensor(),transforms.Normalize((0.1307,),(0.3081,)) ])train_dataset datasets.MNIST(root../dataset/mnist,trainTrue,downloadTrue,transformtransform) train_loader DataLoader(train_dataset,shuffleTrue,batch_sizebatch_size)test_dataset datasets.MNIST(root../dataset/mnist,trainFalse,downloadTrue,transformtransform) test_loader DataLoader(test_dataset,shuffleFalse,batch_sizebatch_size)# 2、构建模型 class Net(torch.nn.Module):def __init__(self):super(Net,self).__init__()self.l1 torch.nn.Linear(784,512)self.l2 torch.nn.Linear(512,256)self.l3 torch.nn.Linear(256,128)self.l4 torch.nn.Linear(128,64)self.l5 torch.nn.Linear(64,10)def forward(self,x):x x.view(-1,784)x F.relu(self.l1(x))x F.relu(self.l2(x))x F.relu(self.l3(x))x F.relu(self.l4(x))return self.l5(x)model Net()# 3、损失函数和优化器 criterion torch.nn.CrossEntropyLoss() optimizer optim.SGD(model.parameters(),lr0.01,momentum0.5)# 4、训练和测试 def train(epoch):running_loss 0.0for batch_idx,data in enumerate(train_loader,0):inputs,target dataoptimizer.zero_grad()outputs model(inputs)loss criterion(outputs,target)loss.backward()optimizer.step()running_loss loss.item()if batch_idx % 300 299: # 每三百次迭代输出一次print([%d , %5d] loss: %.3f % (epoch 1 ,batch_idx 1,running_loss / 300))running_loss 0.0def test():correct 0total 0with torch.no_grad():for data in test_loader:images,labels dataoutputs model(images) # 输出为一个矩阵下面要求每一行最大值(即分类)的下标_,predicted torch.max(outputs.data,dim1)total labels.size(0)correct (predicted labels).sum().item()print(Accuracy on test set: %d %% % (100 * correct / total))if __name__ __main__:for epoch in range(10):train(epoch)test() 实验结果 为什么最后准确率上不去了 因为做图像时忽略了对局部信息的利用本例中使用的是全连接神经网络所有的元素都和其他元素都要产生联系所以首先我们的权重不够多其次我们在处理图像时更关系一些高抽象级别的特征我们现在用的是非常原始的特征 改进我们可以先对图像进行人工特征提取如傅里叶变换变换成频率的表示、小波 自动特征提取CNN • Reading the document: • https://pytorch.org/docs/stable/nn.html#crossentropyloss • https://pytorch.org/docs/stable/nn.html#nllloss • Try to know why: • CrossEntropyLoss LogSoftmax NLLLoss 部分文字参考于 【Pytorch深度学习实践】B站up刘二大人之SoftmaxClassifier-代码理解与实现(8/9)_softmax分类器代码-CSDN博客 视频及图片来源于 09.多分类问题_哔哩哔哩_bilibili

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

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

相关文章

创造力网站设计wordpress汉字后缀图片不显示

前言 最近在使用Flask框架,写一个小项目,在项目部署启动后,出现了以下这段提示,这段提示的意思是,该启动方式适用于开发环境中,生产环境要使用WSGI服务器。 WARNING: This is a development server. Do no…

哪个网站seo做的最好深圳做网站专业

在平时个人开发的过程中是不是有这样的烦恼: 项目开发完成,Push之后 登录服务器,手动git pull,然后运行部署命令 这真的很烦诶! 那么能不能Git push之后,远端服务器自动 Git pull 然后运行部署命令呢&a…

免费的行情网站可以先做网站再开公司吗

Linux系统中经常会使用软连接指向其他目录或文件以快速方便的访问,那么如何读取软连接指向的位置呢,可以通过readlink函数: #include <unistd.h> ssize_t readlink(const char *pathname, char *buf, size_t bufsiz); 参数说明: pathname:软连接的路径 buf:…

网站负责人信息邢台招聘网最新招聘信息

1 多表联查 1.1 表之间的关系 表和表的关系有: 一对一 老公 --> 老婆 , 人 ---> 身份证/户口本 一对多 皇帝 --> 妻妾 , 人 ---> 房/车 多对多 订单 --> 商品 1.2 合并结果集 合并结果集,是将多表查询的结果纵向合并 语法: select field1,field2 from t1 un…

a站全名叫什么中英文网站切换怎么做

1. 如何使用Linux中的包管理器进行软件包依赖管理&#xff1f; Linux中的包管理器如apt、yum等可以自动处理软件包的依赖关系。当安装或升级软件包时&#xff0c;包管理器会自动解决软件包的依赖关系&#xff0c;确保所需的库和工具都已经安装。掌握如何使用包管理器进行依赖管…

兰亭集势网站模板成都建设银行招聘网站

先过我这一关 - signal 在运行程序的时候&#xff0c;一般都知道运行 CtrlC 八成就会把程序给中断&#xff0c;类似于应用程序里面的CLOSE &#xff0c;但是如果有些数据在运行过程中没有保存&#xff0c;就会比较尴尬&#xff0c;此时就需要借助signal同学&#xff0c;让他对…

网页对于网站有多重要河北seo技术培训

事件驱动程序设计总览 开发人员经常询问系统或其代码的性能或效率。 这到底是什么意思&#xff1f; 我的代码是如此高效&#xff0c;只有编码神能理解它的工作原理。 我的代码确实很聪明&#xff0c;但是却难以维护。 下一位开发人员将继续重写它。 我的代码对机器确实很有效…

京东商城网站建设策划书关键词分布中对seo有危害的

常见的坐标系 在使用ROS进行定位导航等操作时&#xff0c;我们经常会遇到各种坐标系。每种坐标系都有明确的含义。理论上坐标系的名称可以是随意的&#xff0c;但是为了方便不同的软件间共享坐标信息&#xff0c;ROS定义了几个常见的坐标系。 1.base_linkbase_link坐标系和机…

物流网站建设与管理太仓网站建设平台

排期的需求在很多任务安排的系统中都有相应的需求&#xff0c;原生的Winform控件并未提供相应的控件&#xff0c;一般都是利用DataGridViewTreeView组合完成相应的需求&#xff0c;实现起来比较麻烦。用过DevExpress控件集的开发者应该知道&#xff0c;DevExpress WinForm提供了…

网站界面风格设计描述网站设计开发工程师

既然是看源码&#xff0c;那我们要怎么看一个类的源码呢&#xff1f;这里我推荐的方法是&#xff1a;1)看继承结构看这个类的层次结构&#xff0c;处于一个什么位置&#xff0c;可以在自己心里有个大概的了解。2)看构造方法在构造方法中&#xff0c;看做了哪些事情&#xff0c;…

含山建设局网站郑州手机端网站建设

在人机融合智能中&#xff0c;事实和价值分别扮演着不同的角色和功能。 事实是客观存在的真实描述&#xff0c;可以通过数据、观测和验证等方式获取。在人机融合智能中&#xff0c;人工智能通过处理和分析大量的数据来提供客观事实的支持。例如&#xff0c;在搜索引擎中&#x…

自己怎样建网站wordpress 4.5.3 下载

目录 1. 图像的基本概念1.1 像素与色彩1.2 过滤与卷积 2. 图像分类与检测3. 图像特征的提取3.1 全局特征3.2 局部特征3.2.1 边缘&#xff08;Edge&#xff09;3.2.2 角点&#xff08;Corner&#xff09;3.2.3 SIFT 特征 4. 传统方法与深度学习在图像识别中的应用4.1 基于传统方…

网站建设的单词杭州网站推广技巧

目录 方式一&#xff1a;JK 1、下载安装包 2、添加依赖 3、启动服务&#xff0c;检查端口是否监听 4、提供apxs命令 5、检查是否确实依赖 6、编译安装 7、重要配置文件 方式二&#xff1a;http_proxy 方式三&#xff1a;ajp_proxy 方式一&#xff1a;JK 1、下载安装…

丰台建设企业网站wordpress图片博客插件

ESP32 MicroPython 图像采集及拍照功能的使用⑧ 1、摄像头应用2、图像采集5、实验结果6、按键拍照7、实验内容8、参考代码9、实验结果 1、摄像头应用 小车配有摄像头&#xff0c;可以使用摄像头实现拍照、图像显示、图像识别等功能。小车已经内置有我们专门移植的摄像头驱动库…

平阴市住房和城乡建设局网站正品手表官网

文章目录手把手教你如下在Linux下如何写一个C语言代码&#xff0c;编译并运行打开Ubuntu终端创建 helloworld.c编译C文件手把手教你如下在Linux下如何写一个C语言代码&#xff0c;编译并运行 打开Ubuntu终端 我这里的终端是Windows下的WSL&#xff0c;如果有疑问&#xff0c;…

网站的建设项目是什么陕西建设系统个人信息查询网站

一、有效的括号 给定一个只包括 (&#xff0c;)&#xff0c;{&#xff0c;}&#xff0c;[&#xff0c;] 的字符串 s &#xff0c;判断字符串是否有效。 有效字符串需满足&#xff1a; 左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。每个右括号都有一个对应…

自己做的网站怎么查平顶山网站建设电话

类的构造函数 类的构造函数是类的一种特殊的成员函数&#xff0c;它会在每次创建类的新对象时执行。 构造函数的名称与类的名称是完全相同的&#xff0c;并且不会返回任何类型&#xff0c;也不会返回 void。构造函数可用于为某些成员变量设置初始值。 下面的实例有助于更好地…

做金属小飞机的网站企业注册信息查询单

QTouch之IEC60870-104通讯作者&#xff1a;舜通智能 来源&#xff1a;www.sitcsys.com 发布时间&#xff1a;2020-04-06热度&#xff1a;0一、协议简介IEC60870-104规约是一个广泛应用于电力、城市轨道交通等行业的国际标准&#xff0c;由国际电工委员会制定。IEC104规约把IEC1…

蓝色脚手架织梦企业网站模板东莞网站建设 塑胶五金

1. 缓存菜品 1.1 问题说明 用户端小程序展示的菜品数据都是通过查询数据库获得&#xff0c;如果用户端访问量比较大&#xff0c;数据库访问压力随之增大。 结果&#xff1a; 系统响应慢、用户体验差 1.2 实现思路 通过Redis来缓存菜品数据&#xff0c;减少数据库查询操作。 缓…

要建设一个网站需要准备些什么变白网站制作源码

目录 一 准备安装包 二 安装 scala 三 修改配置文件 1&#xff09;修改 workers 文件 2&#xff09;修改 spark-env.sh文件 四 进入 spark 交互式平台 一 准备安装包 可以自行去 spark 官网下载想要的版本 这里准备了 spark3.1.2的网盘资源 链接: https://pan.baidu.com…