支持向量机模型pytorch

news2024/12/23 10:53:56

通过5个条件判定一件事情是否会发生,5个条件对这件事情是否发生的影响力不同,计算每个条件对这件事情发生的影响力多大,写一个支持向量机模型pytorch程序,最后打印5个条件分别的影响力。

示例一

支持向量机(SVM)是一种监督学习模型,主要用于分类和回归分析问题。在SVM中,影响力或者重要性的概念并不像决策树中的特征重要性那样直接。SVM通过找到能够将不同类别的数据点分隔开的超平面来进行分类,而数据点距离这个超平面的远近(即间隔)决定了分类的置信度。

在SVM中,特征的影响力通常是通过模型的权重来间接体现的,这些权重在训练过程中被优化以最大化间隔。然而,需要注意的是,SVM的权重并不能直接解释为每个特征对最终决策的影响力,因为它们是在高维空间中同时优化得到的。

虽然PyTorch主要用于实现和训练神经网络,但我们仍然可以使用它来构建SVM模型。不过,通常情况下,SVM更倾向于使用像scikit-learn这样的库来实现,因为这些库为SVM提供了专门的优化算法和接口。

不过,如果坚持要使用PyTorch来实现SVM,并尝试从中提取特征的影响力,下面是一个简化的线性SVM实现示例,其中包含了训练完成后打印权重(作为影响力的一种近似)的步骤:

import torch  
import torch.nn as nn  
import torch.optim as optim  
from sklearn.datasets import make_classification  
from sklearn.model_selection import train_test_split  
from sklearn.metrics import accuracy_score  
  
# 假设我们有5个条件(特征)  
num_features = 5  
# 生成一些模拟数据  
X, y = make_classification(n_samples=100, n_features=num_features, n_informative=num_features, n_redundant=0, random_state=42)  
# 将数据转换为PyTorch张量  
X_tensor = torch.tensor(X, dtype=torch.float32)  
y_tensor = torch.tensor(y * 2 - 1, dtype=torch.float32)  # 将标签转换为+1和-1  
  
# 划分训练集和测试集  
X_train, X_test, y_train, y_test = train_test_split(X_tensor, y_tensor, test_size=0.2, random_state=42)  
  
# 定义线性SVM模型  
class LinearSVM(nn.Module):  
    def __init__(self, input_dim):  
        super(LinearSVM, self).__init__()  
        self.linear = nn.Linear(input_dim, 1)  
          
    def forward(self, x):  
        return self.linear(x)  
  
# 实例化模型  
model = LinearSVM(num_features)  
  
# 定义损失函数和优化器  
criterion = nn.HingeEmbeddingLoss()  # 使用合页损失作为SVM的损失函数  
optimizer = optim.SGD(model.parameters(), lr=0.01)  
  
# 训练模型  
num_epochs = 1000  
for epoch in range(num_epochs):  
    # 前向传播  
    outputs = model(X_train)  
    loss = criterion(outputs.squeeze() * y_train, torch.ones_like(y_train))  
      
    # 反向传播和优化  
    optimizer.zero_grad()  
    loss.backward()  
    optimizer.step()  
      
    if (epoch+1) % 100 == 0:  
        print(f'Epoch [{epoch+1}/{num_epochs}], Loss: {loss.item()}')  
  
# 使用训练好的模型进行预测  
with torch.no_grad():  
    y_pred = model(X_test).squeeze()  
    y_pred_class = (y_pred > 0).float()  
    accuracy = accuracy_score(y_test.numpy(), y_pred_class.numpy())  
    print(f'Test Accuracy: {accuracy * 100:.2f}%')  
  
# 打印权重作为条件影响力的近似  
for i, weight in enumerate(model.linear.weight.data.squeeze().numpy()):  
    print(f"Condition {i+1} influence: {weight}")

在这个例子中,我们使用了HingeEmbeddingLoss作为损失函数,它是SVM中常用的合页损失的一种变体。模型的权重在训练过程中被调整以最小化这个损失。在训练完成后,我们打印了线性层的权重,这些权重可以被解释为每个条件对最终决策的影响力的一种近似。然而,请注意,这种解释是基于线性模型的,且实际影响力可能更加复杂。

示例二

支持向量机(SVM)是一种用于分类、回归和异常值检测的非概率二元线性分类器。在SVM中,模型尝试在高维空间中找到一个超平面,以最大化地将不同类别的样本分隔开。然而,标准的SVM模型并不直接提供特征重要性或影响力的度量。

尽管如此,我们可以通过观察训练后的SVM模型中特征的权重来大致估计每个特征对分类决策的影响力。在线性SVM中,每个特征都有一个对应的权重,这个权重可以被认为是该特征对分类决策的影响力的一种表示。对于非线性SVM(如使用核技巧的SVM),特征的影响力则不那么直接,因为输入空间被映射到了一个更高维的特征空间。

PyTorch没有内置的SVM实现,但我们可以使用其他库,如scikit-learn,来训练一个SVM模型并检查特征的权重。不过,如果坚持要使用PyTorch来构建类似SVM的模型,我们可以实现一个简单的线性SVM,并检查权重以估计特征的影响力。

下面是一个使用PyTorch构建线性SVM并打印特征影响力的示例代码:

import torch  
import torch.nn as nn  
import torch.optim as optim  
from sklearn.datasets import make_classification  
from sklearn.model_selection import train_test_split  
from sklearn.metrics import accuracy_score  
  
# 假设我们有5个条件(特征)  
num_features = 5  
  
# 生成一些模拟数据  
X, y = make_classification(n_samples=100, n_features=num_features, n_informative=num_features, n_redundant=0, random_state=42)  
X = torch.tensor(X.astype(float))  
y = torch.tensor(y.astype(float).reshape(-1, 1))  # Reshape to match PyTorch expectations  
  
# 划分训练集和测试集  
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)  
  
# 定义线性SVM模型  
class LinearSVM(nn.Module):  
    def __init__(self, input_dim):  
        super(LinearSVM, self).__init__()  
        self.fc = nn.Linear(input_dim, 1)  
          
    def forward(self, x):  
        return self.fc(x)  
  
# 实例化模型  
model = LinearSVM(num_features)  
  
# 定义损失函数和优化器  
criterion = nn.HingeEmbeddingLoss()  # SVM通常使用合页损失  
optimizer = optim.SGD(model.parameters(), lr=0.01)  
  
# 训练模型  
num_epochs = 1000  
for epoch in range(num_epochs):  
    # 前向传播  
    outputs = model(X_train)  
    loss = criterion(outputs.squeeze(), y_train.squeeze())  
      
    # 反向传播和优化  
    optimizer.zero_grad()  
    loss.backward()  
    optimizer.step()  
      
    if (epoch+1) % 100 == 0:  
        print(f'Epoch [{epoch+1}/{num_epochs}], Loss: {loss.item()}')  
  
# 评估模型  
with torch.no_grad():  
    predictions = (model(X_test).squeeze() > 0).float()  
    accuracy = accuracy_score(y_test.numpy(), predictions.numpy())  
    print(f'Test Accuracy: {accuracy}')  
  
# 打印特征的影响力(权重的绝对值)  
for i, weight in enumerate(model.fc.weight.data.numpy().flatten()):  
    print(f"Condition {i+1} influence: {abs(weight)}")

在这个例子中,我们定义了一个简单的线性模型,它只有一个全连接层,没有激活函数。我们使用合页损失(HingeEmbeddingLoss),它是SVM中常用的损失函数。训练完成后,我们打印出全连接层的权重,作为每个条件对最终决策影响力的估计。

请注意,这个例子中的“影响力”是通过打印权重的绝对值来计算的。权重的符号表示特征对分类决策的方向(正或负),而绝对值可以大致表示特征的重要性。然而,这只是一个简单的估计,并不考虑特征之间的相互作用或模型的非线性(在这个例子中是线性的)。

对于非线性SVM或更复杂的模型,可能需要使用其他方法来估计特征的重要性,例如排列特征重要性或基于模型解释的库,如SHAP(SHapley Additive exPlanations)。


该程序在尝试使用 PyTorch 实现一个简单的线性支持向量机(SVM),并在模拟数据上训练它。PyTorch通常要求所有的计算都在同一种数据类型上执行,通常是Float类型,而这里遇到的错误提示表明是在尝试将Double类型的张量输入到期望Float类型的模型中。
要解决此问题,我们应当确保输入到模型中的所有张量都是Float类型。在代码中,可以通过调用`.float()`方法来实现。具体地,可以在创建`X`和`y`的张量时,将它们转换为Float类型。
以下是修正后的代码:

import torch
import torch.nn as nn
import torch.optim as optim
from sklearn.datasets import make_classification
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score

# 假设我们有5个条件(特征)
num_features = 5

# 生成一些模拟数据
X, y = make_classification(n_samples=100, n_features=num_features, n_informative=num_features, n_redundant=0, random_state=42)

# 确保X和y是float类型,以兼容PyTorch
X = torch.tensor(X).float() # cast to float
y = torch.tensor(y).float().view(-1, 1) # cast to float and reshape to match PyTorch expectations

# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# 定义线性SVM模型
class LinearSVM(nn.Module):
    def __init__(self, input_dim):
        super(LinearSVM, self).__init__()
        self.fc = nn.Linear(input_dim, 1)

    def forward(self, x):
        return self.fc(x)

# 实例化模型
model = LinearSVM(num_features)

# 定义损失函数和优化器
criterion = nn.HingeEmbeddingLoss()  # SVM通常使用合页损失
optimizer = optim.SGD(model.parameters(), lr=0.01)

# 训练模型
num_epochs = 1000
for epoch in range(num_epochs):
    # 前向传播
    outputs = model(X_train)
    loss = criterion(outputs, y_train)

    # 反向传播和优化
    optimizer.zero_grad()
    loss.backward()
    optimizer.step()

    if (epoch+1) % 100 == 0:
        print(f'Epoch [{epoch+1}/{num_epochs}], Loss: {loss.item()}')

# 评估模型
with torch.no_grad():
    predictions = (model(X_test).squeeze() > 0).float()
    accuracy = accuracy_score(y_test.numpy(), predictions.numpy())
    print(f'Test Accuracy: {accuracy}')
# 打印特征的影响力(权重的绝对值)
for i, weight in enumerate(model.fc.weight.data.numpy().flatten()):
    print(f"Condition {i+1} influence: {abs(weight)}")

注意:在`X = torch.tensor(X).float()`和`y = torch.tensor(y).float().view(-1, 1)`中,移除了对`astype(float)`的调用,因为`.float()`已经确保了张量的类型为float,并且`view()`方法被用于将`y`的形状重新塑造为PyTorch期望的形状,即一个列向量。
这段代码应该能够在不会产生任何类型错误的情况下运行。还可以根据需要调整损失函数(例如在SVM中通常使用合页损失,但可能需要合适的输出转换)和其他超参数。

示例三

支持向量机(SVM)是一种监督学习模型,通常用于分类和回归分析。在SVM中,每个输入特征(本例中的5个条件)对分类边界的位置有影响,但这种影响不是直接通过权重来表示的,而是通过支持向量和核函数来定义的。因此,与神经网络不同,SVM没有直接的“权重”来表示特征的重要性。

然而,线性SVM有一个权重向量,它与输入特征相乘以做出决策。这些权重可以解释为特征对分类决策的影响力。对于非线性SVM,特征的影响力不那么直接,因为它们被映射到一个高维空间,其中非线性决策边界被构造。

在PyTorch中,我们可以使用TorchSVM这样的第三方库来实现SVM,或者使用标准库来实现线性SVM的简化版本。但是,请注意,PyTorch本身并没有提供官方的SVM实现。

为了简化问题,我们可以实现一个线性SVM,并解释其权重作为特征的影响力。这里是一个简单的例子,演示如何使用PyTorch构建一个线性SVM模型,并打印出5个条件的影响力(权重):

import torch  
from torch import nn  
import numpy as np  
from sklearn.model_selection import train_test_split  
from sklearn.datasets import make_classification  
from sklearn.metrics import accuracy_score  
  
# 生成模拟数据  
np.random.seed(42)  
X, y = make_classification(n_samples=100, n_features=5, n_informative=5, n_redundant=0, random_state=42)  
X_tensor = torch.tensor(X.astype(np.float32))  
y_tensor = torch.tensor(y.astype(np.float32)).view(-1, 1)  
  
# 划分训练集和测试集  
X_train, X_test, y_train, y_test = train_test_split(X_tensor, y_tensor, test_size=0.2, random_state=42)  
  
# 将标签转换为±1(SVM标准形式)  
y_train = y_train * 2 - 1  
y_test = y_test * 2 - 1  
  
# 定义线性SVM模型  
class LinearSVM(nn.Module):  
    def __init__(self, input_dim):  
        super(LinearSVM, self).__init__()  
        self.linear = nn.Linear(input_dim, 1)  
          
    def forward(self, x):  
        return self.linear(x)  
  
# 实例化模型  
model = LinearSVM(5)  
  
# 定义损失函数和优化器  
criterion = nn.HingeEmbeddingLoss()  # SVM通常使用合页损失  
optimizer = torch.optim.SGD(model.parameters(), lr=0.01)  
  
# 训练模型  
num_epochs = 1000  
for epoch in range(num_epochs):  
    # 前向传播  
    outputs = model(X_train)  
    loss = criterion(outputs.squeeze() * y_train.squeeze(), torch.ones_like(y_train))  
      
    # 反向传播和优化  
    optimizer.zero_grad()  
    loss.backward()  
    optimizer.step()  
      
    if (epoch+1) % 100 == 0:  
        print(f'Epoch [{epoch+1}/{num_epochs}], Loss: {loss.item()}')  
  
# 测试模型  
y_pred = model(X_test).squeeze()  
y_pred_class = (y_pred > 0).float() * 2 - 1  # 将预测值转换为±1  
accuracy = accuracy_score(y_test.numpy(), y_pred_class.detach().numpy())  
print(f'Test Accuracy: {accuracy}')  
  
# 打印特征的影响力(权重)  
for i, weight in enumerate(model.linear.weight.data.squeeze().numpy()):  
    print(f"Condition {i+1} influence: {weight}")

在这个例子中,我们创建了一个简单的线性SVM模型,使用了HingeEmbeddingLoss作为损失函数,它试图将正例和负例分隔开,并最大化间隔。模型训练完成后,我们打印出线性层的权重,这些权重可以被解释为每个条件对最终分类决策的影响力。

请注意,这个例子是一个简化的线性SVM实现,并不适用于所有情况,特别是当数据不是线性可分的时候。对于非线性问题,可能需要使用核方法或其他非线性SVM的实现。但是,这些实现通常不会直接提供特征的“影响力”度量,因为决策边界在高维空间中变得更加复杂。

示例四

支持向量机(SVM)是一种监督学习模型,通常用于分类和回归分析。在SVM中,每个输入特征对模型决策边界的影响是通过特征在训练过程中的权重来体现的。然而,标准的SVM模型并不直接提供每个特征对最终预测结果的直接影响力度量。尽管如此,我们可以通过查看训练后的SVM模型中特征的系数来近似估计它们的重要性。

请注意,PyTorch本身并没有提供SVM模型的直接实现,因为SVM通常不是通过梯度下降和反向传播来训练的,而是使用二次规划来解决的。不过,我们可以使用scikit-learn中的SVC(支持向量分类)来实现SVM,并分析特征的重要性。

但是,如果坚持要使用PyTorch风格的代码,我们可以使用PyTorch的自动梯度功能和优化器来近似实现一个线性SVM。以下是一个简化的线性SVM实现,用于二分类问题,并在训练后打印出每个条件(特征)的影响力:

import torch  
import torch.nn as nn  
import torch.optim as optim  
from sklearn.datasets import make_classification  
from sklearn.model_selection import train_test_split  
from sklearn.metrics import accuracy_score  
  
# 确保结果可复现  
torch.manual_seed(42)  
  
# 生成模拟数据  
num_conditions = 5  
X, y = make_classification(n_samples=100, n_features=num_conditions, n_informative=num_conditions, n_redundant=0, random_state=42)  
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)  
  
# 转换为PyTorch张量  
X_train_tensor = torch.tensor(X_train, dtype=torch.float32)  
y_train_tensor = torch.tensor(y_train, dtype=torch.float32).view(-1, 1)  
X_test_tensor = torch.tensor(X_test, dtype=torch.float32)  
y_test_tensor = torch.tensor(y_test, dtype=torch.float32).view(-1, 1)  
  
# 线性SVM模型(没有偏置项)  
class LinearSVM(nn.Module):  
    def __init__(self, input_dim):  
        super(LinearSVM, self).__init__()  
        self.linear = nn.Linear(input_dim, 1, bias=False)  # 偏置项设置为False  
  
    def forward(self, x):  
        return self.linear(x)  
  
# 实例化模型  
model = LinearSVM(num_conditions)  
  
# 定义优化器和损失函数  
optimizer = optim.SGD(model.parameters(), lr=0.01)  
criterion = nn.HingeEmbeddingLoss()  # 使用合页损失作为SVM的损失函数  
  
# 训练模型  
num_epochs = 1000  
for epoch in range(num_epochs):  
    optimizer.zero_grad()  
    outputs = model(X_train_tensor)  
    loss = criterion(outputs.squeeze(), y_train_tensor.squeeze())  
    loss.backward()  
    optimizer.step()  
      
    if (epoch + 1) % 100 == 0:  
        print(f'Epoch [{epoch + 1}/{num_epochs}], Loss: {loss.item()}')  
  
# 测试模型  
with torch.no_grad():  
    y_pred = model(X_test_tensor).squeeze()  
    y_pred_class = (y_pred > 0).float()  # 根据输出的正负性判断类别  
    accuracy = accuracy_score(y_test, y_pred_class.numpy())  
    print(f'Test Accuracy: {accuracy}')  
  
# 打印每个条件的影响力(基于训练后的权重)  
for i, weight in enumerate(model.linear.weight.data.squeeze().numpy()):  
    print(f"Condition {i + 1} influence: {weight}")

在这个例子中,我们实现了一个简单的线性SVM模型,使用合页损失(Hinge Loss)作为损失函数,并通过随机梯度下降(SGD)进行优化。训练完成后,我们打印出线性层中的权重,这些权重可以被解释为每个条件对最终决策的影响力。请注意,这个实现是为了教学目的而简化的,并没有包括所有SVM可能的功能和优化。

此外,由于PyTorch本身不是为SVM设计的,这个实现可能不是最高效或最准确的。在实际应用中,推荐使用专门为SVM设计的库,如scikit-learn中的SVC。

示例五

在支持向量机(Support Vector Machine, SVM)模型中,特征的影响力通常不是直接通过模型的参数来衡量的,因为SVM的决策边界仅由支持向量决定,而这些支持向量是数据集中的一部分样本,不一定是每个特征都具有代表性的。然而,我们可以通过查看训练好的SVM模型中每个特征在决策函数中的权重来近似估计每个条件的影响力。

不过,值得注意的是,PyTorch本身并没有提供SVM的原生实现,因为SVM通常通过求解二次规划问题来训练,而这与神经网络的前向传播和反向传播机制不同。尽管如此,我们可以使用第三方库(如scikit-learn)来训练SVM,并获取特征权重。如果坚持要在PyTorch环境中实现,我们可以自己编写SVM的训练逻辑,但这通常比较复杂且不是PyTorch的典型用法。

由于想要用PyTorch实现SVM,我会给出一个简化的SVM实现示例,但这主要是为了教学目的,实际应用中建议使用成熟的库(如scikit-learn)。

下面是一个简化的线性SVM的PyTorch实现,它计算了每个特征对决策边界的影响力:

import torch  
import torch.nn as nn  
import torch.optim as optim  
  
# 假设数据维度和标签  
num_samples = 100  
num_conditions = 5  
  
# 随机生成数据  
X = torch.randn(num_samples, num_conditions)  
y = torch.randint(low=0, high=2, size=(num_samples, 1)) * 2 - 1  # 生成+1和-1的标签  
  
# 线性SVM模型  
class LinearSVM(nn.Module):  
    def __init__(self, input_dim):  
        super(LinearSVM, self).__init__()  
        self.linear = nn.Linear(input_dim, 1)  
          
    def forward(self, x):  
        return self.linear(x)  
  
# 初始化模型  
model = LinearSVM(num_conditions)  
  
# 定义损失函数和优化器  
def hinge_loss(output, target):  
    return torch.mean(torch.max(torch.zeros_like(output), 1 - target * output))  
  
optimizer = optim.SGD(model.parameters(), lr=0.01)  
  
# 训练模型  
num_epochs = 1000  
for epoch in range(num_epochs):  
    optimizer.zero_grad()  
    output = model(X)  
    loss = hinge_loss(output, y)  
    loss.backward()  
    optimizer.step()  
    if (epoch + 1) % 100 == 0:  
        print(f'Epoch [{epoch + 1}/{num_epochs}], Loss: {loss.item()}')  
  
# 打印权重作为影响力  
for i, weight in enumerate(model.linear.weight.data.squeeze()):  
    print(f"Condition {i + 1} influence: {weight.item()}")

在这个例子中,我们定义了一个简单的线性SVM模型,它只有一个线性层。我们使用随机生成的数据进行训练,并使用hinge loss作为损失函数。训练完成后,我们打印出线性层的权重,这些权重可以被解释为每个条件对决策边界的影响力。

请注意,这个例子是为了教学目的而简化的,并且可能无法在实际问题中达到最佳性能。在实际应用中,建议使用成熟的机器学习库(如scikit-learn)来训练SVM模型,并获取特征的重要性。在scikit-learn中,可以使用coef_属性来获取线性SVM的特征权重。

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

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

相关文章

企业网盘搭建——LNMP

php包链接:https://pan.baidu.com/s/1RElYTQx320pN6452N_7t1Q?pwdp8gs 提取码:p8gs 网盘源码包链接:https://pan.baidu.com/s/1BaYqwruka1P6h5wBBrLiBw?pwdwrzo 提取码:wrzo 目录 一.手动部署 二.自动部署 一.手动部署 …

Python pytest 面试题!

在Python软件开发中,单元测试是非常重要的一环。它可以帮助开发人员确保代码的正确性并提高代码质量。pytest是一个功能强大且易于使用的Python测试框架,它提供了丰富的功能和灵活的用法,使得编写和执行测试变得更简单和高效。 本文将介绍一…

如何把车卖出去,什么营销最靠谱!

之前我看过雷军的《小米创业思考》,在书中他一直在强调互联网思维,这是一种非常好的思考模式,不仅限于互联网产品,在这次卖车上也一样展现的淋漓尽致。 营销一样需要被设计。提到,不少设计师首先想到的是做运营海报&am…

pycharm连接hugging face等网站

一、设置环境变量 在代码最前面设置变量 os.environ[ALL_PROXY] http://127.0.0.1:7890 file-->setting 二、查看自己的代理ip 控制面板-网络和internet-internet选项-连接-局域网设置 1.控制面板 2. 网络和internet 3.internet选项 4.连接 5.局域网设置 6.IP

vue3大事件项目3

弹框验证 先准备变量: const formModel ref({ cate_name: , cate_alias: }) 还有规则: const rules { cate_name: [ { required: true, message: please input name, trigger: blur }, { pattern: /^\S{1,10}$/, message: must be 1-10, trigger: blur } ], …

windows下使用nginx设置静态资源路由

1、下载nginx http://nginx.org/en/download.html 下载稳定版本,以nginx/Windows-1.24.0为例,下载后解压,解压后如下: 2、启动nginx 打开cmd命令窗口,切换到nginx解压目录下: start nginx # 启动nginx服务…

浮点数表示的数值范围详解(一)

学生问了一个问题: 这个问题如果想讲明白,需要将基础知识复习一下。 一、定点数 1、什么是定点数? 定点数指小数点在数中位置固定不变的数。 详细解释:计算机中小数点的位置固定不变,小数点前、后的数字&#xff…

一种动态防御策略——移动目标防御(MTD)

文章速览: 1、高级规避攻击 2、用移动目标防御对抗欺骗 常见做法操作系统和应用程序才是真正的战场打破游戏规则 网络攻击的技术变得愈发难测,网络攻击者用多态性、混淆、加密和自我修改乔装他们的恶意软件,以此逃避防御性的检测&#xf…

正基塑业邀您参观2024长三角快递物流供应链与技术装备展览会

2024.7.8-10 杭州国际博览中心 科技创新,数字赋能 同期举办:数字物流技术展新能源商用车及物流车展 电商物流包装展 冷链物流展 展会介绍 2024长三角快递物流供应链与技术装备展览会(杭州),于2024年7月8-10日在杭州…

机器学习中的激活函数

激活函数存在的意义: 激活函数决定了某个神经元是否被激活,当这个神经元接收到的信息是有用或无用的时候,激活函数决定了对这个神经元接收到的信息是留下还是抛弃。如果不加激活函数,神经元仅仅做线性变换,那么该神经网…

【C++】priority_queuepriority_queue模拟实现

个人主页 : zxctscl 如有转载请先通知 文章目录 1. priority_queue的介绍2. priority_queue的使用3. 函数模板与类模板4. 仿函数5. priority_queue模拟实现5.1 push5.2 pop5.3 empty5.4 size5.5 top5.6 仿函数实现大小堆5.7 实现自定义类型的优先级队列 6. 附模拟实…

Linux的启动过程,了解一下?

Linux 系统启动过程 linux启动时我们会看到许多启动信息。 Linux系统的启动过程并不是大家想象中的那么复杂,其过程可以分为5个阶段: 内核的引导。运行 init。系统初始化。建立终端 。用户登录系统。 init程序的类型: SysV: init, CentO…

Linux系统编程开发环境搭建

开发环境搭建 桥接网络(Bridged Network)、网络地址转换(NAT, Network Address Translation)和主机模式网络(Host-only Networking) 在虚拟化环境中,常见的三种网络模式是桥接网络&#xff08…

好用的Python开发工具合集

​ Python是一种功能强大且易于学习的编程语言,被广泛应用于数据科学、机器学习、Web开发等领域。随着Python在各个领域的应用越来越广泛,越来越多的Python开发工具也涌现出来。但是,对于新手来说,选择一款合适的Python开发工具可…

OpenHarmony开发实例:【鸿蒙.bin文件烧录】

使用HiBurn烧录鸿蒙.bin文件到Hi3861开发板 鸿蒙官方文档的“Hi3861开发板第一个示例程序”中描述了——如何使用DevEco Device Tool工具烧录二进制文件到Hi3861开发板; 本文将介绍如何使用HiBurn工具烧录鸿蒙的.bin文件到Hi3861开发板。 获取HiBurn工具 通过鸿蒙…

云仓酒庄品酒师培训破大世界基尼斯纪录,市场专业化趋势势如破竹

近日,云仓酒庄举办的品酒师培训活动成功创下大世界基尼斯纪录,这一荣誉不仅彰显了云仓酒庄在酒类培训领域的专业实力,更折射出酒类市场专业化趋势的势如破竹。随着酒类市场的日益成熟和消费者品鉴需求的提升,酒类市场专业化趋势对…

通义千问:官方开放API开发基础

目录 一、模型介绍 1.1主要模型 1.2 计费单价 二、前置条件 2.1 开通DashScope并创建API-KEY 2.2 设置API-KEY 三、基于DashScope SDK开发 3.1 Maven引入SDK 3.2 代码实现 3.3 运行代码 一、模型介绍 通义千问是由阿里云自主研发的大语言模型,用于理解和分…

Vitis HLS 学习笔记--BLAS库之WideType

目录 1. WideType 数据类型 2. WideType 类模板参数 2.1 SFINAE技术 3. WideType 类中的函数 3.1 operator[](unsigned int p_Idx) 3.2 operator(const WideType& p_w) const 3.3 getValAddr() 3.4 operator const t_TypeInt() 4. 总结 1. WideType 数据类型 在 …

Java+saas模式 智慧校园系统源码Java Android +MySQL+ IDEA 多校运营数字化校园云平台源码

Javasaas模式 智慧校园系统源码Java Android MySQL IDEA 多校运营数字化校园云平台源码 智慧校园即智慧化的校园,也指按智慧化标准进行的校园建设,按标准《智慧校园总体框架》中对智慧校园的标准定义是:物理空间和信息空间的有机衔接&#…

前端学习<四>JavaScript基础——26-闭包

闭包的引入 我们知道,变量根据作用域的不同分为两种:全局变量和局部变量。 函数内部可以访问全局变量和局部变量。 函数外部只能访问全局变量,不能访问局部变量。 当函数执行完毕,本作用域内的局部变量会销毁。 比如下面这样…