• [其他问题] importErrorr:cannot import name 'Validator ' from 'mindspore ._checkparam'
    mindspore版本为2.2.11mindspore_ascend 版本为1.10.0请问是我的版本问题嘛?
  • [技术干货] 机器学习如何提高欺诈预防能力【转】
    前言在线欺诈是许多国家的严重问题,存在网络钓鱼攻击、身份盗窃和假冒电子商务网站等各种诈骗行为。一份报告显示,很大一部分欺诈交易发生在晚上10点至凌晨4点之间,其中60岁以上的信用卡持有者是主要受害者。机器学习有助于预防欺诈,使组织能够实时检测和防止可疑活动。传统的欺诈预防方法往往难以跟上诈骗者不断变化的策略。机器学习算法可以快速分析大量数据,帮助组织识别可能表明可疑行为的模式和异常。这些算法从过去的欺诈案例中学习,不断增强检测可疑活动的能力。通过将机器学习集成到欺诈预防策略中,组织可以领先于诈骗并有效保护其资产。机器学习在预防欺诈方面的一个关键优势是它能够在早期阶段检测可疑活动。通过分析历史数据和识别可疑行为模式,机器学习算法可以实时发现可疑交易,使组织能够迅速采取行动并防止财务损失。图数据库与机器学习一起成为欺诈检测的强大工具。图形数据库以高速率记录和分析网络交互,使其可用于各种应用,包括欺诈检测。他们可以识别大数据中的模式和关系,降低复杂性,以便检测算法可以有效地发现网络内的欺诈企图。机器学习如何提高欺诈预防能力机器学习在欺诈预防方面可以发挥重要作用,以下是一些提高欺诈预防能力的方法:数据分析和特征工程:使用机器学习技术对大量的交易数据进行分析和挖掘,发现欺诈模式和异常行为。通过特征工程,提取关键的特征用于建模。监督学习模型:使用监督学习算法,如决策树、逻辑回归、支持向量机(SVM)等,对历史数据进行建模,学习欺诈案例和正常交易之间的差异,并预测新的交易是否为欺诈。无监督学习模型:利用无监督学习算法,如聚类分析、异常检测等,发现数据中的潜在欺诈模式,识别与正常行为不同的异常交易。半监督学习:结合监督学习和无监督学习的优势,利用标记和未标记数据进行建模,提高模型的泛化能力和欺诈检测的效果。深度学习模型:使用深度学习技术,如神经网络,处理大规模数据,学习复杂的欺诈模式和特征表示,提高欺诈预测的准确性。模型集成:结合多个不同算法的预测结果,采用投票、加权平均等方法,提高模型的鲁棒性和预测性能。实时监测和反馈:建立实时监测系统,对交易进行及时监控和反馈,及时发现并阻止欺诈行为。持续优化:不断收集新数据,更新模型参数,优化模型性能,适应不断变化的欺诈手段和模式。总结总之,随着诈骗者不断发展其策略,组织必须调整其欺诈预防策略以有效应对这些威胁。机器学习和图形数据库是这场持续战斗中的强大武器。这些技术能够快速分析无数数据点,能够准确检测可疑活动,超越人类的能力。这类似于拥有一支超人欺诈侦探团队全天候不知疲倦地工作。转载自:cid:link_0
  • [技术干货] 基于机器学习的深度学习的玫瑰花种类的识别
    准备自行准备一个玫瑰花朵数据集,尽量多的种类和数量,下面教程已自备数据集。数据预处理将图片转换为模型可以处理的格式,对数据进行归一化处理。import tensorflow as tf from tensorflow.keras.preprocessing.image import ImageDataGenerator # 设置图片大小和批次大小 IMG_SIZE = (224, 224) BATCH_SIZE = 32 # 创建ImageDataGenerator实例,用于数据增强和预处理 train_datagen = ImageDataGenerator( rescale=1./255, rotation_range=20, width_shift_range=0.2, height_shift_range=0.2, shear_range=0.2, zoom_range=0.2, horizontal_flip=True, fill_mode='nearest' ) # 加载训练数据集 train_data = train_datagen.flow_from_directory( 'flowers', target_size=IMG_SIZE, batch_size=BATCH_SIZE, class_mode='categorical' )模型构建使用预训练的ResNet50模型作为特征提取器,然后搭建一个全连接层用于分类from tensorflow.keras.models import Model from tensorflow.keras.layers import Dense, GlobalAveragePooling2D from tensorflow.keras.applications.resnet50 import ResNet50 # 加载ResNet50模型 base_model = ResNet50(weights='imagenet', include_top=False, input_shape=IMG_SIZE + (3,)) # 在ResNet50模型基础上搭建全连接层 x = base_model.output x = GlobalAveragePooling2D()(x) x = Dense(1024, activation='relu')(x) predictions = Dense(train_data.num_classes, activation='softmax')(x) # 构建完整模型 model = Model(inputs=base_model.input, outputs=predictions) # 冻结ResNet50模型的所有层 for layer in base_model.layers: layer.trainable = False模型训练和评估训练:# 编译模型 model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy']) # 训练模型 model.fit(train_data, epochs=10)模型训练完成后需要评估:# 加载测试数据集 test_datagen = ImageDataGenerator(rescale=1./255) test_data = test_datagen.flow_from_directory( 'test', target_size=IMG_SIZE, batch_size=BATCH_SIZE, class_mode='categorical' ) # 在测试集上评估模型 test_loss, test_acc = model.evaluate(test_data) print('Test accuracy:', test_acc)必要时调整模型再进行训练:# 设置训练参数 EPOCHS = 50 STEPS_PER_EPOCH = len(train_data) VALIDATION_STEPS = len(valid_data) # 开始训练模型 history = model.fit( train_data, epochs=EPOCHS, steps_per_epoch=STEPS_PER_EPOCH, validation_data=valid_data, validation_steps=VALIDATION_STEPS )
  • [问题求助] 80分类coco128数据集子训练yolov5,成功安装App,但检测不出来结果
    已经成功嵌入到相机里面了, 就是检测不出结果。是不是中间有什么坑!请问是为什么?
  • [技术干货] 机器学习、深度学习与神经网络:探索AI的核心概念
    前言在人工智能(AI)的领域中,机器学习、深度学习和神经网络是三个相互关联且不断发展的概念。它们在推动人工智能技术进步的过程中起着至关重要的作用,并且在诸如语音识别、图像识别、自然语言处理和推荐系统等领域有广泛的应用。机器学习机器学习是人工智能的一个子领域,它使计算机系统能够从数据中“学习”并做出决策。机器学习的目标是让计算机能够从数据中找出模式,并根据这些模式做出预测或分类。在机器学习的过程中,算法会分析输入的数据,从中找出隐藏的模式或关系,然后根据这些信息做出最佳的决策。机器学习算法可以根据其所用的技术分为多种类型,例如监督学习、无监督学习和强化学习。深度学习深度学习是机器学习的一个分支,它利用深度神经网络来处理和分析大量的数据。深度神经网络是一种复杂的计算模型,由多个层次的神经元组成,这些神经元被组织成层,每层都接收前一层的输出作为输入。深度神经网络通过训练大量的数据来学习如何识别模式,并且可以自动提取和抽象高层次的特征。深度学习的应用非常广泛,包括图像识别、语音识别、自然语言处理和游戏AI等领域。神经网络神经网络是深度学习的核心组件,它模拟了人脑神经元的工作方式。神经网络由许多神经元(或节点)组成,每个神经元都接收输入信号,并根据其权重和其他输入信号计算输出信号。神经元的输出信号会被传递给下一层的神经元,这个过程会持续进行直到产生最终的输出。神经网络的训练过程是通过调整神经元之间的权重来优化模型的性能。随着数据和计算能力的增加,神经网络的规模和复杂性也在不断增长,从而推动了深度学习的进步。总结:机器学习、深度学习和神经网络是人工智能领域的核心概念,它们相互关联并推动着彼此的发展。机器学习让计算机系统能够从数据中学习和做出决策;深度学习利用深度神经网络处理和分析大量数据,并自动提取和抽象高层次的特征;而神经网络则是深度学习的核心组件,模拟人脑神经元的工作方式来进行模式识别和预测。随着技术的不断进步和应用领域的不断拓展,这三个概念将继续在人工智能领域发挥重要的作用。
  • [分享交流] 机器学习中的线性回归
    机器学习中的线性回归简介线性回归是机器学习领域中最简单而有效的模型之一。它用于建立自变量(输入)和因变量(输出)之间的线性关系。在实际应用中,线性回归广泛用于预测、分析和建模。让我们深入了解线性回归的基本原理和应用。基本原理线性回归基于假设,即自变量和因变量之间存在线性关系。这种关系通常可以表示为一条直线的方程:$$ y = mx + b $$ 其中,(y) 是因变量,(x) 是自变量,(m) 是斜率,(b) 是截距。模型的目标是找到最适合数据的直线,使得预测值与实际值之间的差异最小化。公司应用许多公司在实际业务中使用线性回归来解决各种问题,例如销售预测、市场分析、资源规划等。下面是一些公司应用线性回归的实际场景:1. 零售行业零售公司可以使用线性回归来预测产品销售量。通过分析历史销售数据,他们可以建立一个模型,考虑因素如季节性、促销活动和市场趋势,以便更好地管理库存和优化供应链。2. 金融领域金融公司可能使用线性回归来评估贷款申请的信用风险。通过分析借款人的信用历史、收入和其他因素,他们可以预测违约的概率,从而更明智地决定是否批准贷款。3. 医疗保健医疗机构可以利用线性回归来预测患者的住院时间或治疗成本。通过考虑患者的健康状况、疾病历史和其他变量,他们可以制定更有效的治疗计划和资源分配。Python 代码演示下面是一个使用 Python 进行线性回归的简单示例。我们将使用 scikit-learn 库,这是一个强大的机器学习库。# 导入必要的库 import numpy as np from sklearn.model_selection import train_test_split from sklearn.linear_model import LinearRegression import matplotlib.pyplot as plt # 生成一些示例数据 np.random.seed(42) X = 2 * np.random.rand(100, 1) y = 4 + 3 * X + np.random.randn(100, 1) # 将数据拆分为训练集和测试集 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) # 创建并拟合线性回归模型 model = LinearRegression() model.fit(X_train, y_train) # 打印模型的系数和截距 print("Coefficient:", model.coef_) print("Intercept:", model.intercept_) # 在测试集上进行预测 y_pred = model.predict(X_test) # 绘制原始数据和回归线 plt.scatter(X_test, y_test, color='black') plt.plot(X_test, y_pred, color='blue', linewidth=3) plt.xlabel('X') plt.ylabel('y') plt.title('Linear Regression Example') plt.show()以上代码演示了如何创建一个简单的线性回归模型,将数据拆分为训练集和测试集,并绘制原始数据及拟合的回归线。进阶主题1. 多变量线性回归前面的例子是单变量线性回归,但线性回归也适用于多个自变量的情况。多变量线性回归的方程可以表示为: $$ y = b_0 + b_1 \cdot x_1 + b_2 \cdot x_2 + \ldots + b_n \cdot x_n $$ 其中, $$ x_1, x_2, \ldots, x_n $$ 是多个自变量, $$ b_0, b_1, b_2, \ldots, b_n $$ 是模型的系数。这样的模型可用于更复杂的现实场景。2. 正则化为了防止过拟合,线性回归模型通常会使用正则化。L1 正则化和 L2 正则化是两种常见的方法。它们通过在成本函数中引入正则化项,惩罚系数过大的模型,从而提高模型的泛化能力。# 使用 L2 正则化的线性回归 from sklearn.linear_model import Ridge ridge_model = Ridge(alpha=1.0) # alpha 是正则化强度 ridge_model.fit(X_train, y_train)3. 多项式回归在某些情况下,数据可能不是线性的,这时可以使用多项式回归。它通过引入自变量的高次项来拟合曲线关系。from sklearn.preprocessing import PolynomialFeatures # 将特征转换为多项式特征 poly_features = PolynomialFeatures(degree=2, include_bias=False) X_poly = poly_features.fit_transform(X) # 然后使用线性回归拟合多项式特征 poly_model = LinearRegression() poly_model.fit(X_poly, y)更多实际应用1. 房价预测房地产公司可以使用线性回归来预测房屋价格。模型可以考虑诸如房屋大小、地理位置、周围设施等因素。2. 股票价格预测金融公司可能使用线性回归来分析股票价格的趋势。考虑因素如市场指数、公司业绩等,可以帮助他们制定投资策略。3. 营销效果分析营销团队可以使用线性回归来分析广告投放对销售的影响。这有助于优化广告预算和选择最有效的营销渠道。模型评估与调优1. 模型评估指标在使用线性回归模型时,了解模型的性能是至关重要的。一些常用的模型评估指标包括:均方误差(Mean Squared Error, MSE): 衡量模型预测值与实际值之间的平方差的平均值。from sklearn.metrics import mean_squared_error mse = mean_squared_error(y_test, y_pred) print("Mean Squared Error:", mse)R平方(R-squared): 衡量模型解释因变量变化的比例,取值范围在0到1之间。from sklearn.metrics import r2_score r2 = r2_score(y_test, y_pred) print("R-squared:", r2)2. 模型调优为了提高模型性能,可能需要进行一些调优步骤:特征工程: 选择合适的特征对模型性能至关重要。可以通过特征选择或创建新的特征来改进模型。# 示例:使用 SelectKBest 进行特征选择 from sklearn.feature_selection import SelectKBest, f_regression selector = SelectKBest(score_func=f_regression, k=2) X_new = selector.fit_transform(X, y)超参数调优: 调整模型的超参数,如正则化强度、多项式次数等,以获得更好的性能。# 示例:使用网格搜索调整超参数 from sklearn.model_selection import GridSearchCV param_grid = {'alpha': [0.1, 1.0, 10.0]} grid_search = GridSearchCV(Ridge(), param_grid, cv=5) grid_search.fit(X_train, y_train) best_alpha = grid_search.best_params_['alpha']如果大家觉得有用的话,可以关注我下面的微信公众号,极客李华,我会在里面更新更多行业资讯和企业面试内容,让大家更好学习编程,我的抖音,B站也是极客李华。
  • [问题求助] 摄像头视觉 场景物品存在报警识别功能需求
    功能需求场景 : 传送货梯,人不能进入,只有货品进入,做到货品在货梯空间存在5分钟 发出报警功能。
  • [技术干货] 基于MindSpore的监督学习实验
    目的与要求实验目的:了解逻辑回归的基本概念了解如何使用 MindSpore 进行逻辑回归实验实验要求:使用 MindSpore 实现了逻辑回归,生成可以区分2类鸢尾花的逻辑回归模型。内容与设计思想1、 实验内容:逻辑回归是机器学习中的一种经典算法,它是广义线性回归的一种形式,与线性回归有明显的不同。逻辑回归的主要特点包括:自变量分布不受限制:逻辑回归不要求自变量(特征)的分布遵循特定的概率分布,因此可以应用于各种类型的特征数据。因变量是离散型变量:逻辑回归用于处理离散型的因变量,通常是二分类问题(例如,是/否、1/0),但也可以扩展到多分类问题。分析概率关系:逻辑回归分析的是因变量取某个值的概率与自变量之间的关系。它估计了某个事件发生的概率,而不是直接估计事件的值。具体到这个实验中,使用MindSpore进行逻辑回归,目标是在一个二分类数据集上分析自变量(特征)与因变量(概率)之间的关系。2、 设计思想:数据准备à数据读取预处理à模型建立与训练à模型评估使用环境MindSpore 1.3华为云ModelArts:ModelArts 是华为云提供的面向开发者的一站式 AI 开发平台,集成了昇腾 AI 处理器资源池,用户可以在该平台下体验 MindSpore。主要实验内容和结果展示ModelArts开发环境搭建在华为云主页搜索 Modelarts,点击“AI 开发平台 ModelArts”中的“进入控制台”选择“北京四”地区,在左侧下拉框中点击“开发环境”中的“Notebook”, 点击创建按钮来创建一个新的 Notebook,选择如下配置: 名称:MachineLearning工作环境:Ascend+ARM 算法开发和训练基础镜像。 存储配置:默认存储。 点击“下一步”,确认规格如下后选择提交:当 Notebook 状态变为“运行中”时,点击右侧“打开”按钮打开 Notebook。打开后选择右侧“MindSpore-python3.7-aarch64”按钮,进入 Notebook 环境:数据准备Iris 数据集是模式识别最著名的数据集之一。数据集包含 3 类,每类 50 个实例,其中每个类都涉及一种鸢尾植物。 第一类与后两类可线性分离,后两类之间不能线性分离,所以本实验取前两类数据,做一个 2 分类数据集。2.1下载数据我们从Iris数据集官网下载[iris.data 文件](cid:link_0)2.2上传数据到实验环境在新建的 notebook 实验环境中,通过如图所示的“上传”按钮,然后选择自己本地已下载好的 数据文件“iris.data”,将数据文件上传到实验环境中。3、 导入 MindSpore 模块和辅助模块读取 Iris 数据集,并查看部分数据输出:4、抽取样本 取前两类样本(共 100 条),将数据集的 4 个属性作为自变量 X。将数据集的 2 个类别映射 为{0, 1},作为因变量 Y。  4、样本可视化 取样本的前两个属性进行 2 维可视化,可以看到在前两个属性上两类样本是线性可分的。输出:5、分割数据集 将数据集按 8:2 划分为训练集和验证集:6、数据类型转换 使用 MindSpore 的 GeneratorDataset 接口将 numpy.ndarray 类型的数据转换为 Dataset:7、模型创建与训练可视化逻辑回归函数 逻辑回归常用的联系函数是 Sigmoid(S 形函数),Sigmoid 函数如下图所示,可以将连续值 映射到{0, 1},同时也是单调可微的。输出:7、建模使用 MindSpore 提供的 nn.Dense(4, 1)算子(https://www.mindspore.cn/api/zh-CN/0.2.0-alpha/api/python/mindspore/mindspore.nn.html#mindspore.nn.Dense)作为线性部分,其中(4, 1)表示每个样本的输入是含 4 个元素的向量,输出是含 1 个元素的向量,即 W 是 1x4的矩阵。算子会随机初始化权重 W 和偏置 b。使用 SigmoidCrossEntropyWithLogits 算子(https://www.mindspore.cn/api/zh-CN/0.3.0-alpha/api/python/mindspore/mindspore.ops.operations.html?#mindspore.ops.operations.S igmoidCrossEntropyWithLogits)作为非线性部分: 对于每个样本 N_i,模型的计算方式如下: 8、模型训练 使用 2 分类的 Iris 数据集对模型进行几代(Epoch)训练:输出:9、模型评估然后计算模型在测试集上精度,测试集上的准确率达到了 1.0 左右,即逻辑回归模型学会了区分 2 类鸢尾花。输出:五、实验总结    本实验使用 MindSpore 实现了逻辑回归,用来解决 2 分类问题。在 Iris 数据集上进行训练 后,所得的模型可以很好的表示每个样本类别 y 和属性 x 的关系。通过这个实验,我收获了处理二分类问题的基础知识,了解了如何评估模型性能,并学习了如何使用MindSpore框架实现机器学习模型。这些技能对于解决各种分类问题和将来进一步深入学习机器学习有重要意义。六、创新设计要实现多分类,导入数据等部分与2分类一致,输出标签需要独热编码,创建Softmax回归模型,python代码如下:import csvimport numpy as npimport mindspore as msfrom mindspore import nnfrom mindspore import contextfrom mindspore import datasetfrom mindspore.train.callback import LossMonitorfrom mindspore.common.api import ms_functionfrom mindspore.ops import operations as Pfrom sklearn.datasets import load_irisfrom sklearn.model_selection import train_test_split# 设置计算设备context.set_context(mode=context.GRAPH_MODE, device_target="Ascend")# 加载Iris数据集iris = load_iris()X, y = iris.data, iris.target# 创建标签映射label_map = {0: 'Iris-setosa', 1: 'Iris-versicolor', 2: 'Iris-virginica'}# 划分数据集X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)# 定义Softmax回归模型class SoftmaxRegression(nn.Cell): def __init__(self, num_features, num_classes): super(SoftmaxRegression, self).__init__() self.fc = nn.Dense(num_features, num_classes) def construct(self, x): return self.fc(x)# 创建模型num_features = X_train.shape[1]num_classes = len(np.unique(y))model = SoftmaxRegression(num_features, num_classes)# 损失函数loss_fn = nn.SoftmaxCrossEntropyWithLogits(sparse=True)# 优化器optimizer = nn.SGD(params=model.trainable_params(), learning_rate=0.01)# 数据处理XY_train = list(zip(X_train, y_train))ds_train = dataset.GeneratorDataset(XY_train, ['x', 'y'])ds_train = ds_train.shuffle(buffer_size=len(X_train)).batch(32, drop_remainder=True)# 自定义训练循环def train_model(model, loss_fn, optimizer, num_epochs, ds_train): for epoch in range(num_epochs): total_loss = 0 for data in ds_train.create_dict_iterator(num_epochs=1): x = ms.Tensor(data['x'], ms.float32) y = ms.Tensor(data['y'], ms.int32) with ms_function(): output = model(x) loss = loss_fn(output, y) grads = P.GradOperation(get_by_list=True)(loss, model.trainable_params()) total_loss += loss.asnumpy() optimizer(grads) print(f'Epoch [{epoch+1}/{num_epochs}], Loss: {total_loss / len(ds_train)}')# 训练模型train_model(model, loss_fn, optimizer, num_epochs=50, ds_train)# 评估模型def evaluate_model(model, X_test, y_test): x = ms.Tensor(X_test, ms.float32) y = ms.Tensor(y_test, ms.int32) output = model(x) predicted = np.argmax(output.asnumpy(), axis=1) accuracy = np.mean(predicted == y.asnumpy()) return accuracyaccuracy = evaluate_model(model, X_test, y_test)print(f'Test accuracy is {accuracy * 100:.2f}%')
  • [技术干货] Minst T分类实验
    目的与要求实验目的:学习 PyTorch 基础: 通过实现一个简单的卷积神经网络,学习如何使用PyTorch 构建深度学习模型。熟悉卷积神经网络结构: 了解卷积层、池化层、全连接层等卷积神经网络的基本组件,以及它们在图像分类任务中的作用。实践深度学习训练循环: 通过编写训练和测试循环,理解深度学习模型的训练过程,包括前向传播、反向传播、损失计算等步骤。掌握 PyTorch 工具: 学会使用 PyTorch 提供的工具和模块,例如优化器(Optimizer)和学习率调度器(Learning Rate Scheduler)。实验结果分析: 通过测试模型并分析测试结果,评估模型在手写数字识别任务上的性能。2、 实验要求:使用 PyTorch 实现一个卷积神经网络(CNN),并使用 MNIST 数据集进行训练和测试,从而实现手写数字识别实验原理1、卷积神经网络 (CNN):一类专门设计用于处理网格状数据(如图像)的深度学习模型。它包含卷积层、池化层和全连接层。卷积层能够有效地提取图像中的特征,而池化层则用于降采样,减小计算量。这有助于CNN学习图像中的局部模式和整体结构。2、MNIST 数据集:包含手写数字图像,每个图像都是28x28像素的灰度图。它是一个常用的基准数据集,用于测试图像分类算法的性能。每个图像都带有相应的标签,表示图像中的数字。3、激活函数 (Activation Function): 在神经网络中,激活函数引入非线性性质,允许网络学习复杂的映射关系。在本实验中,Rectified Linear Unit(ReLU)是主要的激活函数,用于在卷积层和全连接层之间引入非线性。4、损失函数 (Loss Function): 用于度量模型输出与真实标签之间的差异。5、优化器 (Optimizer): 用于更新模型参数以最小化损失。6、学习率调度器 (Learning Rate Scheduler): 用于动态调整学习率,帮助模型更好地收敛。7、训练循环: 包括前向传播、反向传播和参数更新。在训练期间,模型通过多次迭代学习如何准确地预测手写数字的标签。8、测试循环: 在训练结束后,模型通过测试集进行评估。测试集上的性能指标,如损失和准确率,可用于评估模型的泛化能力。使用环境PyTorchTorchvisionPyCharm2022.3.2实验过程环境设置:安装PyTorch和torchvision:代码理解:仔细阅读所提供的Python代码,了解代码的结构每个模块和函数的作用。下载Minst数据集:模型定义:查看Net类,了解卷积神经网络的结构,包括卷积层、池化层、全连接层等,补充forward函数。训练参数设置:阅读代码中的参数设置,包括批量大小、学习率、训练轮数等。训练循环:调用train函数执行训练循环,该函数包括多个训练周期,每个周期包括多个批次。在每个批次中,进行前向传播、损失计算、反向传播和参数更新。测试模型:调用test函数对训练后的模型在测试集上进行评估。该函数计算模型在测试集上的损失和准确率。​​​​​​​调整训练参数,包括批量大小、学习率、训练轮数,观察训练过程中的训练损失和测试准确率等输出,评估模型的性能。五、实验结果及分析    batch_size=64,epochs=1,学习率=1时(即默认值),训练结果为:batch_size=32,epochs=1,学习率=1时,训练结果为:batch_size=128,epochs=1,学习率=1时,训练结果为:这表明对于更大或者更小的批量,模型的准确率会有所下降。batch_size=64,epochs=5,学习率=1时,训练结果为:可以发现损失轮数增加,训练时长增加,但准确率与平均损失会减少,模型更准确。batch_size=64,epochs=1,学习率=0.8时,训练结果为:​​​​​​​可以发现,较小的学习率可能需要更多的训练时间,但可能导致更稳定的收敛。六、附录未修改 batch_size和learning_rate的代码:from __future__ import print_functionimport argparseimport torchimport torch.nn as nnimport torch.nn.functional as Fimport torch.optim as optimfrom torchvision import datasets, transformsfrom torch.optim.lr_scheduler import StepLR# 定义神经网络模型class Net(nn.Module): def __init__(self): super(Net, self).__init__() # 卷积层 self.conv1 = nn.Conv2d(1, 32, 3, 1) self.conv2 = nn.Conv2d(32, 64, 3, 1) # 丢弃层 self.dropout1 = nn.Dropout(0.25) self.dropout2 = nn.Dropout(0.5) # 全连接层 self.fc1 = nn.Linear(9216, 128) self.fc2 = nn.Linear(128, 10) def forward(self, x): # 卷积和激活层 x = self.conv1(x) x = F.relu(x) x = self.conv2(x) x = F.relu(x) # 最大池化层 x = F.max_pool2d(x, 2) x = self.dropout1(x) # 展平数据以供全连接层使用 x = torch.flatten(x, 1) # 全连接层,包括激活和丢弃 x = self.fc1(x) x = F.relu(x) x = self.dropout2(x) x = self.fc2(x) # 输出层使用对数softmax激活 output = F.log_softmax(x, dim=1) return output# 训练模型的函数def train(args, model, device, train_loader, optimizer, epoch): model.train() for batch_idx, (data, target) in enumerate(train_loader): data, target = data.to(device), target.to(device) optimizer.zero_grad() output = model(data) # 负对数似然损失 loss = F.nll_loss(output, target) loss.backward() optimizer.step() if batch_idx % args.log_interval == 0: print('训练 Epoch: {} [{}/{} ({:.0f}%)]\t损失: {:.6f}'.format( epoch, batch_idx * len(data), len(train_loader.dataset), 100. * batch_idx / len(train_loader), loss.item())) if args.dry_run: break# 测试模型的函数def test(model, device, test_loader): model.eval() test_loss = 0 correct = 0 with torch.no_grad(): for data, target in test_loader: data, target = data.to(device), target.to(device)
  • [课程学习] K-means鸢尾花聚类实验
    目的与要求实验目的:学习 PyTorch 基础: 通过实现一个简单的卷积神经网络,学习如何使用PyTorch 构建深度学习模型。熟悉卷积神经网络结构: 了解卷积层、池化层、全连接层等卷积神经网络的基本组件,以及它们在图像分类任务中的作用。实践深度学习训练循环: 通过编写训练和测试循环,理解深度学习模型的训练过程,包括前向传播、反向传播、损失计算等步骤。掌握 PyTorch 工具: 学会使用 PyTorch 提供的工具和模块,例如优化器(Optimizer)和学习率调度器(Learning Rate Scheduler)。实验结果分析: 通过测试模型并分析测试结果,评估模型在手写数字识别任务上的性能。2、 实验要求:使用 PyTorch 实现一个卷积神经网络(CNN),并使用 MNIST 数据集进行训练和测试,从而实现手写数字识别实验原理1、卷积神经网络 (CNN):一类专门设计用于处理网格状数据(如图像)的深度学习模型。它包含卷积层、池化层和全连接层。卷积层能够有效地提取图像中的特征,而池化层则用于降采样,减小计算量。这有助于CNN学习图像中的局部模式和整体结构。2、MNIST 数据集:包含手写数字图像,每个图像都是28x28像素的灰度图。它是一个常用的基准数据集,用于测试图像分类算法的性能。每个图像都带有相应的标签,表示图像中的数字。3、激活函数 (Activation Function): 在神经网络中,激活函数引入非线性性质,允许网络学习复杂的映射关系。在本实验中,Rectified Linear Unit(ReLU)是主要的激活函数,用于在卷积层和全连接层之间引入非线性。4、损失函数 (Loss Function): 用于度量模型输出与真实标签之间的差异。5、优化器 (Optimizer): 用于更新模型参数以最小化损失。6、学习率调度器 (Learning Rate Scheduler): 用于动态调整学习率,帮助模型更好地收敛。7、训练循环: 包括前向传播、反向传播和参数更新。在训练期间,模型通过多次迭代学习如何准确地预测手写数字的标签。8、测试循环: 在训练结束后,模型通过测试集进行评估。测试集上的性能指标,如损失和准确率,可用于评估模型的泛化能力。使用环境PyTorchTorchvisionPyCharm2022.3.2四、实验结果及分析    Test set:  Average Loss :0.0473  Accuracy :9851/10000 99%五、附录未修改 batch_size和learning_rate的代码:from __future__ import print_functionimport argparseimport torchimport torch.nn as nnimport torch.nn.functional as Fimport torch.optim as optimfrom torchvision import datasets, transformsfrom torch.optim.lr_scheduler import StepLR# 定义神经网络模型class Net(nn.Module): def __init__(self): super(Net, self).__init__() # 卷积层 self.conv1 = nn.Conv2d(1, 32, 3, 1) self.conv2 = nn.Conv2d(32, 64, 3, 1) # 丢弃层 self.dropout1 = nn.Dropout(0.25) self.dropout2 = nn.Dropout(0.5) # 全连接层 self.fc1 = nn.Linear(9216, 128) self.fc2 = nn.Linear(128, 10) def forward(self, x): # 卷积和激活层 x = self.conv1(x) x = F.relu(x) x = self.conv2(x) x = F.relu(x) # 最大池化层 x = F.max_pool2d(x, 2) x = self.dropout1(x) # 展平数据以供全连接层使用 x = torch.flatten(x, 1) # 全连接层,包括激活和丢弃 x = self.fc1(x) x = F.relu(x) x = self.dropout2(x) x = self.fc2(x) # 输出层使用对数softmax激活 output = F.log_softmax(x, dim=1) return output# 训练模型的函数def train(args, model, device, train_loader, optimizer, epoch): model.train() for batch_idx, (data, target) in enumerate(train_loader): data, target = data.to(device), target.to(device) optimizer.zero_grad() output = model(data) # 负对数似然损失 loss = F.nll_loss(output, target) loss.backward() optimizer.step() if batch_idx % args.log_interval == 0: print('训练 Epoch: {} [{}/{} ({:.0f}%)]\t损失: {:.6f}'.format( epoch, batch_idx * len(data), len(train_loader.dataset), 100. * batch_idx / len(train_loader), loss.item())) if args.dry_run: break# 测试模型的函数def test(model, device, test_loader): model.eval() test_loss = 0 correct = 0 with torch.no_grad(): for data, target in test_loader: data, target = data.to(device), target.to(device)
  • [技术干货] 监督学习 & 无监督学习
    定义监督学习和无监督学习是机器学习的两种主要方法。监督学习:这种方法需要带有标签的训练数据,通常由人工标注或专家知识提供。训练数据由输入物件(通常是向量)和预期输出组成,例如分类标签或连续值。在监督学习中,模型通过学习输入数据与输出数据之间的对应关系,生成一个函数,将输入映射到合适的输出,例如分类。无监督学习:无监督学习不需要标签,因此可以利用更丰富的未标记数据。在无监督学习中,训练数据只包含输入样本,没有相应的标签或预期输出。无监督学习的目标是从数据中推断出隐藏的结构、关系或规律,例如聚类、降维和关联规则挖掘等。区别监督学习监督学习的优点在于其精准性。由于监督学习利用了带有标签的训练数据,通过训练模型来预测输出结果,因此可以获得相对准确的预测结果。此外,在某些特定领域,如医学图像处理或金融市场预测等,监督学习可以利用专家知识或历史数据进行训练,从而获得更准确的预测结果。然而,监督学习的缺点在于其数据获取和标注的成本较高。在很多应用场景中,获取带有标签的数据需要大量的人力物力投入,特别是在数据量庞大或标注数据要求较高的场景中,监督学习的成本会更高。无监督学习无监督学习的优点在于其利用未标记的数据进行训练,从而避免了监督学习中的数据获取和标注成本。无监督学习通过对数据进行挖掘和分析,发现数据中的内在结构和规律,从而进行聚类、降维和关联规则挖掘等任务。在某些特定领域,如社交网络分析或市场调研中,无监督学习可以充分利用未标记的数据,获取更丰富的信息和洞察。然而,无监督学习的缺点在于其结果的解释性相对较弱。由于无监督学习没有利用带有标签的数据进行训练,因此其结果的解释性通常不如监督学习强。此外,在某些应用场景中,无监督学习可能需要更多的计算资源和时间来进行模型训练和优化。准确率监督学习和无监督学习各有其准确率优势。监督学习的准确率相对较高。这是因为监督学习利用了带有标签的训练数据进行训练,可以通过比较实际输出和预期输出之间的误差来优化模型。此外,监督学习通常采用诸如回归、分类、聚类等算法,这些算法经过优化和调整,可以获得相对准确的预测结果。然而,监督学习的准确率也取决于多种因素,如数据的质量和数量、模型的复杂度和训练的充分性等。如果训练数据不充分或存在噪声,或者模型过于复杂,那么监督学习的准确率可能会下降。无监督学习的准确率通常比监督学习低。这是因为无监督学习没有利用带有标签的数据进行训练,而是通过挖掘和分析未标记的数据来发现数据中的内在结构和规律。无监督学习通常采用诸如聚类、降维等算法,这些算法的目的是从数据中提取有用的信息和洞见,而不是直接预测结果。然而,无监督学习也有其独特的优势。例如,在某些情况下,无监督学习可以利用未标记的数据进行训练,从而避免监督学习中数据获取和标注的成本。此外,无监督学习可以发现数据中的隐藏结构和模式,从而提供对数据更深入的理解和洞见。因此,无法简单地判断哪种学习的准确率更高,而是需要根据具体的应用场景和需求来选择合适的学习方法。在某些场景中,如预测股票价格或疾病诊断等需要相对准确的结果时,监督学习可能更合适。而在另一些场景中,如社交网络分析或市场调研中,无监督学习可以提供更丰富的信息和洞见。成本由于监督学习需要人工获取标注,因此成本肯定是大大高于无监督学习
  • [公告] 华为云实时智能风控RTD简介
    1 背景1.1 风控概念互联网诞生以来,互联互通的信息浪潮,压缩了传输的空间和时间,打破了以往阻绝流动的藩篱,人们的生活得到了极大的便利。尤其是在移动互联网的背景下,没有绝对的隐私,没有绝对的安全,风险无所不在。风控技术是保证机构和个人利益重要手段。风控(Risk Control)是指在金融、营销、互联网等领域中,通过识别、评估和管理风险,采取相应的措施来控制和降低风险的过程。 1.2 传统风控技术挑战随着黑灰色产业链产业化,精准化,移动化,技术化,风控技术面临巨大挑战。传统风控系统数据维度单一,多维度多场景难以协同,很难应对团伙欺诈等新变化。事中缺乏对复杂、高并发场景的实时计算能力,既要实现笔笔风控检测又要保障用户体验的双目标难以满足。另外欺诈模式隐蔽化,场景化,社工化演变,经验规则无法应对多变场景,自动化水平低。 1.3 实时智能风控的价值实时智能风控是一种利用人工智能(AI)技术对风险识别和管理的方法。它通过自研算法模型对大数据分析、机器学习等技术进行融合,提供实时、准确和全面的风险识别和管理,以保护组织免受潜在的威胁和损失。它可以应用于不同领域,如金融服务、电子商务、保险、网络安全等。2 华为云实时智能风控RTD关键能力2.1 变量和规则计算变量和规则是RTD系统核心概念。变量是规则的输入,在规则执行前会进行一系列的计算。根据变量的特征可以分为事件变量,批次变量,实时查询变量,模型变量和窗口变量等。变量和规则具有以下特点:丰富的变量来源,覆盖业务场景广泛。支持黑白名单,满足特殊业务诉求。规则可分组加权计算。支持第三方请求变量,扩展决策流。 2.2 复杂规则实现复杂规则特点:需要保存历史数据,大窗口计算,数据间有相互作用。举例: 几天内多笔转账金额上下浮动10%。 几天内多笔转帐金额连续递增。传统规则引擎做法: 类似drools规则引擎 + mysql或oracle等。缺点: 需要java代码+SQL,开发成本高。 复杂规则SQL交互多,性能很差;一般都是秒级或者分钟级响应。流处理技术做法: 通过流处理计算统计值,加CEP判断,这种一般适合于依赖历史数据少的,基于当前数据的特征或者黑白名单或者有前后顺序的数据处理。缺点: 大窗口计算性能差,甚至无法计算。 不同的计算逻辑无法共享数据,占用内存资源多。 需借助多流Join对多事件源协同处理。最好的实现方法: 超高性能的内存计算DB引擎 + 支持事务的PLSQL实现规则。 2.3 多维度协同决策维度是业务管理颗粒度,比如说卡人维度、卡片维度、商户维度等,不同的维度可以定义各自的变量和规则。实时智能风控RTD支持多多维度协同计算,决策准确性更高。 多事件源:多事件源共享内存计算引擎,实现数据共享,比如先识别登录才能转账 多维度:父子维度多维度同时决策,比如一个帐户在过去3天转帐超过5次,设备使用都是安卓,这次转账使用了非安卓手机,且IP地址不一样。 近数据源计算:规则在数据节点执行,近数据计算,实时性高,性能达到极致。 2.4 灰度发布灰度发布(Gray Deployment)是一种软件发布策略,它允许在生产环境中逐步将新版本的软件部署给一部分用户或服务器,以便在全面推广之前进行测试和评估。降低风险:灰度发布可以帮助降低发布新版本时的风险。通过逐步将新版本部署给一小部分用户或服务器,可以在全面推广之前及时发现和解决潜在的问题和错误。这样可以避免出现全面发布后对所有用户造成的严重故障或影响。提供实时反馈:通过将新版本的软件部署给一小部分用户或服务器,可以获得实时的用户反馈。这些反馈可以帮助开发团队及时了解新版本的性能、稳定性和用户体验,并根据反馈进行必要的调整和改进。控制发布节奏:灰度发布允许控制发布的节奏和速度。可以根据实际情况逐步增加新版本的部署比例,确保系统的稳定性和可用性。如果在灰度发布的过程中发现了问题,可以暂停或回滚发布,以避免对所有用户造成不良影响。 2.5 冠军挑战者冠军挑战者(Champion-Challenger)是一种在业务或技术领域中常用的策略,它通过同时运行并比较不同的解决方案或策略,以确定最佳的方案。创新和改进:冠军挑战者方案鼓励创新和改进。通过同时尝试多个解决方案或策略,可以发现新的想法和方法,提高业务或技术的效率和效果。挑战者方案可以激发竞争和创造力,推动组织不断进步和发展。降低风险:冠军挑战者方案可以降低决策的风险。通过同时运行多个方案,可以在实践中评估它们的表现和结果。这样可以避免过度依赖单一方案而导致的潜在风险和失败。如果挑战者方案表现更好,可以及时调整冠军方案,减少潜在的损失。数据驱动决策:冠军挑战者方案基于数据和实证结果进行决策。通过同时运行多个方案并收集相关数据,可以进行客观的比较和评估。这样可以基于实际数据做出决策,而不是仅凭主观判断或假设。 2.6 规则和模型融合机器学习在风控场景使用越来越广泛,它可以帮助机构和组织更好地识别、评估和管理各种风险。欺诈检测:机器学习可以用于欺诈检测,通过分析大量的交易数据和用户行为模式,识别潜在的欺诈行为。基于历史数据和模式识别算法,机器学习模型可以自动识别异常交易、盗刷和欺诈活动,帮助机构及时采取措施防止和减少损失。信用评估:机器学习可以用于信用评估,通过分析借款人的个人信息、历史借贷记录和其他相关数据,预测其违约风险。机器学习模型可以根据大量的历史数据和特征,建立预测模型来评估借款人的信用状况,并帮助机构做出更准确的信用决策。信用卡反欺诈:机器学习可以用于信用卡反欺诈,通过分析持卡人的消费模式、地理位置和其他行为特征,识别潜在的信用卡欺诈行为。机器学习模型可以实时监测交易,并根据模式识别和异常检测算法,自动识别可疑交易和欺诈行为。 3 华为云实时智能风控RTD的优势实时智能风控RTD是一个企业级分布式实时决策引擎平台,具备满足大数据量、高并发、低时延,自定义规则,水平扩展的特性,是数据到商业决策的“最后一公里”,为企业提供风控、营销等高价值的精准决策。系统的高可扩展性,能够方便融合机器学习等外部模型作为变量输入,提高决策的精确性。 高性能:实时智能风控RTD是分布式决策引擎,采用自研超高性能内存计算引擎支持近数据计算NDP。处理时延百毫秒级。处理能力可横向扩展。处理达到5000TPS。高可靠:支持Rest、异步消息接入,即可以通过不同的协议接入RTD平台。高性能的多协议接入部件,隐藏内部网络拓扑细节。业务处理单元采用分布式架构、规则执行引擎主备架构、支持分库分表。易用性:使用传统的SQL语言,容易理解,学习,编写。支持SQL/PLSQL规则定义。支持应用实时监控。满足事中和事后两种场景。自主性:支持用户自定义事件渠道、自定义维度、自定义事件源。多样数据源灵活接入。业务人员可自定义规则、自助秒级上下线规则。支持机器学习评分模式。创新性:多技术融合:规则引擎、流处理、AI、内存库、近数据计算。变量+ 规则 + AI 模型融合。规则集管理。灰度发布、冠军挑战者。4 实时智能风控RTD在金融领域的应用实时智能风控RTD在某金融机构深度使用,取得非常好的成效:风险案件下降率83%,防堵损失数亿元。12个控制渠道,覆盖95%的业务场景,侦测覆盖率提升10%。30毫秒神速响应,加速银行智能反欺诈,用户体验好。转账免动码下降85%,登录免动码下降95%,节约短信费用数千万元。金额BP值达到千分之一,行业领先。 5 展望总结随着时代技术,互联网产品形态的不断发展,风控需要持续不断的学习和对抗。移动支付占比超过70%,网络伪冒趋势不断上升。欺诈手段呈现专业化,产业化,隐蔽化,场景化,风险不断增大。未来,实时智能风控RTD将更加的注重人工智能大模型的融合和算法创新,提高风险预测的准确性和实时性。
  • [问题求助] ApolloScape Scene Parsing数据集应该如何使用?
    ApolloScape Scene Parsing数据集应该如何使用?
  • [其他] 浅谈机器学习之应用场景
    机器学习应用广泛,无论是在军事领域还是民用领域,都有机器学习算法施展的机会,主要包括以下几个方面。数据分析与挖掘“数据挖掘”和"数据分析”通常被相提并论,并在许多场合被认为是可以相互替代的术语。关于数据挖掘,已有多种文字不同但含义接近的定义,例如“识别出巨量数据中有效的.新颖的、潜在有用的最终可理解的模式的非平凡过程”,无论是数据分析还是数据挖掘,都是帮助人们收集、分析数据,使之成为信息,并做出判断,因此可以将这两项合称为数据分析与挖掘。数据分析与挖掘技术是机器学习算法和数据存取技术的结合,利用机器学习提供的统计分析、知识发现等手段分析海量数据,同时利用数据存取机制实现数据的高效读写。机器学习在数据分析与挖掘领域中拥有无可取代的地位,2012年Hadoop进军机器学习领域就是一个很好的例子。模式识别模式识别起源于工程领域,而机器学习起源于计算机科学,这两个不同学科的结合带来了模式识别领域的调整和发展。模式识别研究主要集中在两个方面。(1)研究生物体(包括人)是如何感知对象的,属于认识科学的范畴。(2)在给定的任务下,如何用计算机实现模式识别的理论和方法,这些是机器学习的长项,也是机器学习研究的内容之一。模式识别的应用领域广泛,包括计算机视觉、医学图像分析、光学文字识别、自然语言处理、语音识别、手写识别、生物特征识别、文件分类、搜索引擎等,而这些领域也正是机器学习大展身手的舞台,因此模式识别与机器学习的关系越来越密切。在生物信息学上的应用随着基因组和其他测序项目的不断发展,生物信息学研究的重点正逐步从积累数据转移到如何解释这些数据。在未来,生物学的新发现将极大地依赖于在多个维度和不同尺度下对多样化的数据进行组合和关联的分析能力,而不再仅仅依赖于对传统领域的继续关注。序列数据将与结构和功能数据基因表达数据、生化反应通路数据表现型和临床数据等一系列数据相互集成。如此大量的数据,在生物信息的存储、获取、处理、浏览及可视化等方面,都对理论算法和软件的发展提出了迫切的需求。另外,由于基因组数据本身的复杂性也对理论算法和软件的发展提出了迫切的需求。而机器学习方法例如神经网络、遗传算法、决策树和支持向量机等正适合于处理这种数据量大、含有噪声并且缺乏统一理论的领域。具体应用(1)虚拟助手。Siri,Alexa,Google Now都是虚拟助手。顾名思义,当使用语音发出指令后,它们会协助查找信息。对于回答,虚拟助手会查找信息,回忆语音指令人员的相关查询,或向其他资源(如电话应用程序)发送命令以收集信息。人们甚至可以指导助手执行某些任务,例如“设置7点的闹钟”等。(2)交通预测。生活中人们经常使用GPS导航服务。当使用GPS导航服务时,人们当前的位置和速度被保存在中央服务器上来进行流量管理。之后使用这些数据用于构建当前流量的映射。通过机器学习可以解决配备GPS的汽车数量较少的问题,在这种情况下的机器学习有助于根据估计找到拥挤的区域。(3)过滤垃圾邮件和恶意软件。电子邮件客户端使用了许多垃圾邮件过滤方法。为了确保这些垃圾邮件过滤器能够不断更新,它们使用了机器学习技术。多层感知器和决策树归纳等是由机器学习提供支持的一些垃圾邮件过滤技术。每天检测到超过325000个恶意软件,每个代码与之前版本的90%~98%相似。由机器学习驱动的系统安全程序理解编码模式。因此,他们可以轻松检测到2%~10%变异的新恶意软件,并提供针对它们的保护。(3)快速揭示细胞内部结构。借由高功率显微镜和机器学习,美国科学家研发出一种新算法,可在整个细胞的超高分辨率图像中自动识别大约30种不同类型的细胞器和其他结构。相关论文发表在最新一期的《自然》杂志上。(4)2022年,中国科学家利用机器学习的方法,快速得到相接双星的参数和误差。
  • 华为atlas openeuler操作系统制卡失败
    制卡失败,失败原因为qemu is broken or the version of qemu is not compatible我已经按照华为官方文档的要求安装了相应的依赖软件,为什么还会出现qemu broken的错误
总条数:4846 到第
上滑加载中