• [课程学习] 云技术精髓活动笔记分享 - 云中的计算
    云中的计算学习笔记分享计算云服务介绍华为计算云服务提供丰富多样的产品包括弹性云服务器(ECS)、裸金属服务器(BMS)、专属主机(DeH)、云容器引擎(CCE)、云容器实例(CCI)、函数工作流(FGS),丰富的云计算类型能满足不同用户在不同场景下的计算需求。一、弹性云服务器 ECS1、特性弹性云服务器ECS可以当它是台服务器,用户有用完整的服务器控制权,只需要关心操作系统以上的部分,底层硬件部分交给华为云。可以根据需求调整计算能力。计费也十分灵活,仅在使用时支付费用。也可以理解为一次性资源。2、快速获取配置流程如下:基础配置->网络配置->高级配置->确认配置基础配置中包含:交付方式、区域/可用区、实例类型、启动镜像、硬盘存储网络配置中包含:VPC、子网、安全组、弹性IP、流量高级配置中包含:服务器命名、服务器备份、服务器组、高级选项3、付费方式有按需实例、包周期实例、预留实例、竞价实例按需实例:按需适用、按适用流量计费、适合弹性或临时适用。十分灵活但费用不是最优惠的。包周期实例:接近自有数据中心的概念、可以包月或包年、折扣稳定、适合长期适用的场景。缺点是如果项目周期不确定长期使用,不适合使用。预留实例:长期使用的承诺、稳定折扣、不锁定资源、适合长期使用场景竞价实例:价格由市场确定、动态但可能很低的折扣、资源可能被撤回、适合允许动态调整资源的架构。4、区域的选择    合规要求是刚需:海外业务要求数据存放本国,选择区域要考虑合规要求    客户体验放前面:主机更贴近客户,客户延迟更低,体验更好    功能不是哪都有:有些特定功能不见得所有区域都有,我们选择区域里是否有该功能    算算价格能节省:有些区域价格有差异,选择区域的时候也要考虑价格因素5、实例类型选择:    实例的系列:通用计算型、内存优化型。。。    实例的版本代号:一般数字越大,性价比越好    同等体系下,CPU资源的多少    内存CPU比例①代表实例系列,擅长做什么的,例如通用计算型C,内存优化型R,表示实例处理数据上的特性不同②版本号,新的版本代表新的技术,比如CPU新的特性等等。版本号越高,性价比越好③在同样配置情况下,有多少个CPU资源 Large表示2颗CPU④内存和CPU之间的比例,2CPU情况下,2X4 内存是8G选择实例类型的思路:    根据模块特性,选择适合模块的实例类型    实例类型如果选错,可以非常方便的更换实例类型,也可以重新生成一台新服务器    实例类型优化不是一次性工作:优化的基础是监控,根据监控到的资源利用率调整主机配置。6、网络的选择    首先确定连通性,选择VPC    考虑逻辑管理层次:业务有关联的主机放在同一子网中。    是否暴露在公网上:只有暴露公网需求的主机上配置公网IP,避免增加安全风险    完善网络安全:做防火墙设置,减少端口暴露7、其他配置    登录方式提供三种选项:登录密码、密钥对、以后我再设置。推荐使用密钥对进行身份认证    为服务器设置备份方案:根据业务特性,决定是否要开启备份    注入用户数据,自动初始服务器二、专属主机服务DeH专属主机(Dedicated Host)是指其上创建云服务器的所有资源完全供您专用的物理服务器,满足您对计算的隔离和性能要求。跟ECS主机的区别是一个ECS主机上有多个ECS实例,这些实例分给多个不同的用户。专属主机DeH是该物理机上的ECS实例只给一个用户,用户可以查看主机资源使用情况,也可以对主机上的虚拟机分布可以动态调整。解决一些合规要求的独占性要求,解决特定软件授权的硬件指标要求。三、裸金属服务BMS弹性裸金属服务器(Bare Metal Server)服务,为用户提供专属的物理服务器,提供卓越的计算性能,满足核心因公场景对高性能及稳定性的要求,结合了传统托管服务器带来的稳定性和云中资源高度弹性的优势。它跟专属主机却别是专属服务器是在物理服务器上安装虚拟化软件,虚拟多个实例提供用户使用。裸金属服务器没有虚拟化软件,直接提供物理服务器。提供专用的计算资源、支持VPC安全组隔离、继承了物理服务器的特征(无虚拟化开销带来的性能损失)、支持硬盘备份恢复能力、支持对接专属存储。四、镜像服务IMS利用镜像初始化服务器,通俗的理解可以当成一键GHOST恢复镜像。1、本质就是硬盘长上面样子2、额外包含虚拟机资源限制3、操作系统安装好的形态存在,不用安装,恢复即可。4、购买新服务器,本质是镜像恢复5、镜像来源丰富:A、华为云原生镜像:华为云负责安全纯净、只有光板操作系统、华为云持续更新、是非常稳定的自定义基础B、华为云市场镜像:华为云合作伙伴提供、华为云负责安全纯净、可能需要额外支付费用、往往包含特定软件C、私有镜像:从自己拥有的主机创建、自行负责内容安全、创建时建议关闭主机、可以带任何软件和配置D、共享镜像:任何华为云客户提供、共享前预先设置权限、由共享这负责内容安全、推荐相互熟悉的用户用。
  • [课程学习] 云技术精髓活动笔记分享 - 云上的存储
    云技术精髓活动笔记分享 - 云上的存储引言在云计算的生态系统中,数据存储是核心的组成部分。为了帮助入门级开发者更好地理解和应用云存储技术,本笔记将详细记录华为云技术精髓认证课程中“云上的存储”章节的学习内容和心得体会。目录存储云服务概览对象存储服务OBS云硬盘服务EVS与本地磁盘弹性文件服务SFS1. 存储云服务概览云存储服务是一种通过网络提供可扩展、灵活、按需访问的数据存储解决方案。它允许用户存储和检索数据,而无需直接管理底层硬件。1.1 云存储的类型块存储:提供块级别的数据存储,适用于虚拟机实例。文件存储:提供文件级别的数据存储,适用于需要文件系统接口的应用。对象存储:提供非结构化数据的存储,适用于大容量数据。1.2 云存储的优势可扩展性:根据需求动态调整存储容量。高可用性:数据在多个位置复制,确保数据不会丢失。成本效益:按使用量付费,无需前期大量投资。2. 对象存储服务OBS对象存储服务(OBS)是一种适用于存储非结构化数据的服务,例如图片、视频和日志文件。2.1 OBS的特点高可靠性:数据多副本存储。可扩展性:自动扩展存储容量。低成本:按实际使用量付费。2.2 OBS的使用场景大数据分析:存储大量非结构化数据。网站托管:提供静态网站内容。备份与归档:长期存储备份数据。3. 云硬盘服务EVS与本地磁盘云硬盘服务(EVS)是一种高性能的块存储服务,它提供持久化的数据存储,适用于数据库和高性能计算场景。3.1 EVS的特点高性能:低延迟,高IOPS。持久性:数据持久存储,实例删除后数据依然保留。灵活性:支持在线扩展容量和快照功能。3.2 EVS与本地磁盘的比较性能:EVS通常提供更高的IOPS和吞吐量。成本:本地磁盘成本较低,但可扩展性差。持久性:EVS提供数据持久性,本地磁盘则不具备。4. 弹性文件服务SFS弹性文件服务(SFS)是一种分布式文件存储服务,它支持标准的文件系统接口,适用于需要共享文件存储的应用场景。4.1 SFS的特点高性能:支持高并发访问。易用性:兼容POSIX标准,易于集成现有应用。弹性:按需扩展文件系统容量。4.2 SFS的使用场景多媒体处理:存储和处理大量视频和音频文件。分布式应用:需要共享文件存储的分布式应用。开发和测试环境:提供灵活的文件存储解决方案。实验心得通过实验,我深刻理解了不同云存储服务的使用场景和配置方法。在实践中,我学会了如何根据不同的应用需求选择合适的存储服务。例如,对于需要高IOPS的数据库应用,我会选择EVS;而对于需要大容量、低成本存储的媒体文件,我会选择OBS。学习方法分享理论结合实践:通过实际操作来加深对理论知识的理解。多资源学习:利用官方文档、在线课程和社区论坛等多种资源。案例分析:研究实际案例,理解不同存储服务在现实世界中的应用。结语云存储是云计算中不可或缺的一部分,它为数据的存储、管理和分析提供了强大的支持。通过本课程的学习,我们不仅掌握了云存储的基础知识,还学会了如何在实际应用中选择合适的存储服务。希望这份笔记能为其他学员的学习提供参考和帮助。
  • [无人车挑战赛道] 【咨询】请问2024华为ICT或者【物联网大赛】比如(华为数通)的报名结束了吗,其他赛题好像也只有负责人,木有邮箱或者qq群啊,目前只能在微信群里潜水
    咨询】具体赛题联系方式疑问【物联网大赛】比如(华为数通)的报名结束了吗,其他赛题好像也只有负责人,木有邮箱或者qq群啊,目前只能在微信群里潜水
  • [问题求助] 如何成为“受邀学员”,以便部分高级课程
    部分课程无法学习,提示“仅限受邀学员学习”,如何才能成为“受邀学员”,以便进行学习。
  • [公告] CraftArts IPDCenter面向伙伴的赋能培训
    CraftArts IPDCenter是依托华为产品数字化转型及IPD协同最佳实践,打造的一款基于统一数据模型、端到端数据管理和协同的平台云服务。作为华为工业软件云的尖刀产品,CraftArts IPDCenter目前已经正式商用。为提升伙伴对产品的理解,支撑产品的推广和交付,产品团队于4月9日、10日组织了两场针对合作伙伴的产品赋能交流。在本次赋能交流中,产品团队通过6门课程向伙伴们全方位介绍了CraftArts IPDCenter的功能特性和集成方法,来自9家伙伴的超过140人参与。后续,CraftArts IPDCenter产品团队将持续开展专业赋能,协同伙伴为客户提供更大价值!
  • [问题求助] 各位大神,有最新的HCSE LAB试题吗?
    各位大神,有最新的HCSE LAB试题吗?关于客户上云的规划
  • [交流分享] HCIE 云计算证书,可联系有红利
    HCIE 云计算方向,考证通过的朋友留个联系方式
  • [问题求助] 无法更新病毒库
    如图一直更新失败  试了无数次换网络也不行
  • 第一章作业
    第一章作业:作业一。作业二:
  • [优秀实践] 基于ModelAtrts平台使用mindspore框架提升CIFAR-10模型精度
    一、导入Python环境import mindspore # mindspore.dataset import mindspore.dataset as ds # 数据集的载入 import mindspore.dataset.transforms.c_transforms as C # 常用转化算子 import mindspore.dataset.vision.c_transforms as CV # 图像转化算子 # mindspore.common from mindspore.common import dtype as mstype # 数据形态转换 from mindspore.common.initializer import Normal # 参数初始化 # mindspore.nn import mindspore.nn as nn # 各类网络层都在nn里面 from mindspore.nn.metrics import Accuracy, Loss # 测试模型用 # mindspore.train.callback from mindspore.train.callback import ModelCheckpoint, CheckpointConfig, LossMonitor, TimeMonitor, Callback # 回调函数 from mindspore import Model # 承载网络结构 from mindspore import save_checkpoint, load_checkpoint # 保存与读取最佳参数 from mindspore import context # 设置mindspore运行的环境 import numpy as np # numpy import matplotlib.pyplot as plt # 可视化用 import copy # 保存网络参数用 # 数据路径处理 import os, stat二、MindSpore 环境设置1.MindSpore支持两种运行模式,在调试或者运行方面做了不同的优化: PYNATIVE模式:也称动态图模式,将神经网络中的各个算子逐一下发执行,方便用户编写和调试神经网络模型。2.GRAPH模式:也称静态图模式或者图模式,将神经网络模型编译成一整张图,然后下发执行。该模式利用图优化等技术提高运行性能,同时有助于规模部署和跨平台运行。device_target = context.get_context('device_target') # 获取运行装置(CPU,GPU,Ascend) dataset_sink_mode = True if device_target in ['Ascend','GPU'] else False # 是否将数据通过pipeline下发到装置上 context.set_context(mode = context.GRAPH_MODE, device_target = device_target) # 设置运行环境,静态图context.GRAPH_MODE指向静态图模型,即在运行之前会把全部图建立编译完毕 print(f'device_target: {device_target}') print(f'dataset_sink_mode: {dataset_sink_mode}')三、数据处理计算数据集平均数和标准差,数据标准化时使用。ds_train = ds.Cifar10Dataset(train_path) #计算数据集平均数和标准差,数据标准化时使用 tmp = np.asarray( [x['image'] for x in ds_train.create_dict_iterator(output_numpy=True)] ) RGB_mean = tuple(np.mean(tmp, axis=(0, 1, 2))) RGB_std = tuple(np.std(tmp, axis=(0, 1, 2))) print(RGB_mean) print(RGB_std)定义数据预处理函数。函数功能包括:加载数据集打乱数据集图像特征处理(包括尺寸大小变更、平移、标准化、训练时的随机裁剪、随机翻转等)批量输出数据重复def create_dataset(data_path, batch_size = 32, repeat_num=1, usage = 'train'): """ 数据处理 Args: data_path (str): 数据路径 batch_size (int): 批量大小 usage (str): 训练或测试 Returns: Dataset对象 """ # 载入数据集 data = ds.Cifar10Dataset(data_path) # 打乱数据集 data = data.shuffle(buffer_size=10000) # 定义算子 if usage=='train': trans = [ CV.Normalize(RGB_mean, RGB_std), # 数据标准化 # 数据增强 CV.Resize((32, 32)), CV.RandomCrop([32, 32], [4,4,4,4]), # 随机裁剪 CV.RandomRotation(20), CV.RandomHorizontalFlip(), # 随机翻转 CV.HWC2CHW() # 通道前移(为配适网络,CHW的格式可最佳发挥昇腾芯片算力) ] else: trans = [ CV.Normalize(RGB_mean, RGB_std), # 数据标准化 CV.HWC2CHW() # 通道前移(为配适网络,CHW的格式可最佳发挥昇腾芯片算力) ] typecast_op = C.TypeCast(mstype.int32) # 原始数据的标签是unint,计算损失需要int # 算子运算 data = data.map(input_columns='label', operations=typecast_op) data = data.map(input_columns='image', operations=trans) # 批处理 data = data.batch(batch_size, drop_remainder=True) # 重复 data = data.repeat(repeat_num) return data记录模型每个epoch的loss# 记录模型每个epoch的loss class TrainHistroy(Callback): """ 记录模型训练时每个epoch的loss的回调函数 Args: history (list): 传入list以保存模型每个epoch的loss """ def __init__(self, history): super(TrainHistroy, self).__init__() self.history = history # 每个epoch结束时执行 def epoch_end(self, run_context): cb_params = run_context.original_args() loss = cb_params.net_outputs.asnumpy() self.history.append(loss) # 测试并记录模型在测试集的loss和accuracy,每个epoch结束时进行模型测试并记录结果,跟踪并保存准确率最高的模型网络参数 class EvalHistory(Callback): """ 记录模型训练时每个epoch在测试集的loss和accuracy的回调函数,并保存准确率最高的模型网络参数 Args: model (Cell): 模型,评估loss和accuracy用 loss_history (list): 传入list以保存模型每个epoch在测试集的loss acc_history (list): 传入list以保存模型每个epoch在测试集的accuracy eval_data (Dataset): 测试集,评估模型loss和accuracy用 """ #保存accuracy最高的网络参数 best_param = None def __init__(self, model, loss_history, acc_history, eval_data): super(EvalHistory, self).__init__() self.loss_history = loss_history self.acc_history = acc_history self.eval_data = eval_data self.model = model # 每个epoch结束时执行 def epoch_end(self, run_context): cb_params = run_context.original_args() res = self.model.eval(self.eval_data, dataset_sink_mode=False) if len(self.acc_history)==0 or res['accuracy']>=max(self.acc_history): self.best_param = copy.deepcopy(cb_params.network) self.loss_history.append(res['loss']) self.acc_history.append(res['accuracy']) print('acc_eval: ',res['accuracy']) # 训练结束后执行 def end(self, run_context): # 保存最优网络参数 best_param_path = os.path.join(ckpt_path, 'best_param.ckpt') if os.path.exists(best_param_path): # best_param.ckpt已存在时MindSpore会覆盖旧的文件,这里修改文件读写权限防止报错 os.chmod(best_param_path, stat.S_IWRITE) save_checkpoint(self.best_param, best_param_path)四、模型构建1.相关理论卷积神经网络在实际运用中需要我们对网络模型进行修改来达到提高网络性能的目的,目前有一些常见的技术和策略来提高网络性能如下所示:(1).加深网络深度:增加网络的深度可以提高网络的表达能力,使其能够学习更复杂的特征和模式。通过增加网络的层数,可以逐渐提高性能;(2).增加卷积层和池化层:卷积层和池化层是CNN中的核心组件,它们能够提取输入数据中的局部特征并减少数据的空间维度。增加卷积层和池化层的数量可以提高网络对图像的抽象能力和不变性;(3).批归一化处理(BN):批归一化是一种常用的正则化技术,通过对每个批次的输入进行归一化,使网络更加稳定和鲁棒性。它有助于加速训练过程,提高网络的收敛性和泛化能力;(4).改进激活函数:选择适当的激活函数可以增强网络的非线性表达能力。常见的激活函数如ReLU、Leaky ReLU和ELU等,在一些情况下能够提供更好的性能;(5).利用Dropout函数:Dropout是一种正则化技术,可以随机地将网络中的一些神经元置零,从而减少过拟合。通过在训练过程中随机关闭一些神经元,Dropout可以提高网络的泛化能力。在卷积神经网络性能不断提升,当训练数据有限的时候卷积神经网络容易出现过拟合的情况,因此我们在提升卷积神经网络性能的同时也要注意防止卷积神经网络过拟合,主要有以下的一些方法:(1).数据扩增:通过对训练数据进行一系列随机变换和增强操作,如平移、旋转、缩放、镜像翻转等,可以生成更多样化的训练样本。这样可以增加数据的多样性,减少过拟合的风险,并提升网络的泛化能力;(2).正则化:正则化是通过在损失函数中添加正则项,对模型的复杂度进行惩罚,以减小过拟合的风险。常见的正则化方法包括L1正则化和L2正则化。L1正则化倾向于产生稀疏权重,而L2正则化则更倾向于在权重上施加均衡约束;(3).提早停止:提早停止是指在训练过程中,监测验证集上的性能,并在性能不再提升时停止训练。通过在合适的时间停止训练,可以防止过拟合的发生。提早停止方法通常与验证集的损失或准确率进行监测,并在验证集性能不再提升时停止训练;(4).权重衰减:权重衰减是通过在损失函数中添加一个惩罚项来减小权重的大小。这样可以防止权重过大,限制模型的复杂度,并减少过拟合的风险。权重衰减通常通过在损失函数中添加L2范数正则化项来实现。2.模型改进本次实验的卷积神经网络主要做了如下几个方面的修改:(1).增加了卷积层和池化层的个数:本实验使用了9层卷积层,卷积核大小为3x3,各层的卷积核数量为3、16、32、64、128、256、512。本实验采用逐步缓慢上升的卷积核数量的原因是当输出的卷积核数量远远多于输入的卷积核数量时卷积神经网络会出现过度参数化的情况,网络参数数量的急剧增加,从而增加模型的复杂性。也有可能会出现过度关注局部特征的情况,当输出的卷积核数量远多于输入的卷积核数量时,网络可能会过度关注局部细节特征。较多的卷积核数量可能会导致网络在较低层级过多地关注细粒度的局部特征,而忽略了更高层级的全局特征。这可能导致网络的表示能力偏向于局部特征,而无法充分捕捉输入数据的整体结构。经过实验的测试也可以发现,当卷积核上升幅度过大的时候,模型的准确率增长速度并不理想,并且会很快趋于饱和和出现过拟合的情况;(2).由于本实验中所采用的特征图的尺寸为32x32,卷积层和池化层的叠加很容易让特征图的尺寸变得很小,因此本实验中利用大小为1的padding填充来保证特征图的大小,使得输入输出的尺寸保持一致。除此之外,padding可以保持空间信息,防止信息丢失。在某些情况下,输入数据的边缘信息对于模型的性能很重要。通过添加padding,可以使卷积核能够在边缘位置进行更多的感受野操作,从而保留了输入数据的更多空间信息;(3).本实验中为了加快模型的收敛速度和提高鲁棒性,加入了批量归一化(BN)操作,BN作为归一化操作的一种,通过对每个小批量样本进行归一化操作,BN可以减小网络中不同层之间的内部协变量偏移,从而帮助梯度更好地传播。BN操作在推导时候的公式如下所示:y=γx/√(Var[x]+ε)+(β-(γE[x])/√(Var[x]+ε))一般来说,FC层之后会接一个BN的操作,然后再接一个激活函数。如果经历过高斯分布转换以后,没有做尺度变换和偏移,如a中所示数据分布呈现在-1~1之间,在这范围中,sigmoid函数基本上是线性的,所以丧失了激活函数的非线性的作用。而通过公式进行尺度变换和偏移得到的b中的3曲线就是做了BN操作后的结果。这样可以加快网络的收敛速度,使模型更快地达到收敛状态。同时使用BN还可以允许网络使用更高的学习率。由于BN减小了网络中不同层之间的内部协变量偏移,它可以使网络更容易训练。这使得可以使用更高的学习率来更新网络的参数,加速训练过程。使用更高的学习率有助于在相同时间内更好地探索参数空间,提高网络的性能。class LeNet5(nn.Cell): # 定义算子 def __init__(self, num_class=10, num_channel=3): super(LeNet5_2, self).__init__() self.conv1 = nn.Conv2d(num_channel, 16, 3, stride=1, pad_mode='pad', padding=1, weight_init=Normal(0.02)) self.conv2 = nn.Conv2d(16, 32, 3, stride=1, pad_mode='pad', padding=1, weight_init=Normal(0.02)) self.conv3 = nn.Conv2d(32, 64, 3, stride=1, pad_mode='pad', padding=1, weight_init=Normal(0.02)) self.conv4 = nn.Conv2d(64, 128, 3, stride=1, pad_mode='pad', padding=1, weight_init=Normal(0.02)) self.conv5 = nn.Conv2d(128, 256, 3, stride=1, pad_mode='pad', padding=1, weight_init=Normal(0.02)) self.conv6 = nn.Conv2d(256, 512, 3, stride=1, pad_mode='pad', padding=1, weight_init=Normal(0.02)) self.conv7 = nn.Conv2d(512, 512, 3, stride=1, pad_mode='pad', padding=1, weight_init=Normal(0.02)) self.fc1 = nn.Dense(512 * 2 * 2, 256, weight_init=Normal(0.02)) self.fc2 = nn.Dense(256, 64, weight_init=Normal(0.02)) self.fc3 = nn.Dense(64, num_class, weight_init=Normal(0.02)) self.relu = nn.ReLU() self.max_pool2d = nn.MaxPool2d(kernel_size=2, stride=2) self.flatten = nn.Flatten() self.num_class = num_class self.bn1 = nn.BatchNorm2d(num_features=16) self.bn2 = nn.BatchNorm2d(num_features=32) self.bn3 = nn.BatchNorm2d(num_features=64) self.bn4 = nn.BatchNorm2d(num_features=128) self.bn5 = nn.BatchNorm2d(num_features=256) self.bn6 = nn.BatchNorm2d(num_features=512) self.bn7 = nn.BatchNorm1d(num_features=256) self.bn8 = nn.BatchNorm1d(num_features=64) # 构建网络 def construct(self, x): x = self.conv1(x) x = self.bn1(x) x = self.relu(x) x = self.conv2(x) x = self.bn2(x) x = self.relu(x) x = self.conv3(x) x = self.bn3(x) x = self.relu(x) x = self.max_pool2d(x) x = self.conv4(x) x = self.bn4(x) x = self.relu(x) x = self.conv5(x) x = self.bn5(x) x = self.relu(x) x = self.conv6(x) x = self.bn6(x) x = self.relu(x) x = self.conv7(x) x = self.bn6(x) x = self.relu(x) x = self.max_pool2d(x) x = self.conv7(x) x = self.bn6(x) x = self.relu(x) x = self.max_pool2d(x) x = self.conv7(x) x = self.bn6(x) x = self.relu(x) x = self.max_pool2d(x) x = self.flatten(x) x = self.fc1(x) x = self.bn7(x) x = self.relu(x) x = self.fc2(x) x = self.bn8(x) x = self.relu(x) x = self.fc3(x) return x五、模型训练更新后的模型在CIFAR-10数据集上的准确度能够达到92.3%。train_data = create_dataset(train_path, batch_size = 128, usage = 'train') # 训练数据集 test_data = create_dataset(test_path, batch_size = 128, usage= 'test') # 测试数据集 # 网络 network3 = LeNet5() # 损失函数 net_loss = nn.SoftmaxCrossEntropyWithLogits(sparse=True, reduction='mean') # 优化器 net_opt = nn.Adam(params=network3.trainable_params(), learning_rate=0.001) # 模型 model = Model(network = network3, loss_fn=net_loss, optimizer=net_opt, metrics={'accuracy': Accuracy(), 'loss':Loss()}) ckpt_path = os.path.join('.', 'results') # 网络参数保存路径 hist = {'loss':[], 'loss_eval':[], 'acc_eval':[]} # 训练过程记录 # 网络参数自动保存,这里设定每2000个step保存一次,最多保存10次 config_ck = CheckpointConfig(save_checkpoint_steps=2000, keep_checkpoint_max=10) ckpoint_cb = ModelCheckpoint(prefix='checkpoint_lenet_3', directory=ckpt_path, config=config_ck) # 监控每次迭代的时间 time_cb = TimeMonitor(data_size=ds_train.get_dataset_size()) # 监控loss值 loss_cb = LossMonitor(per_print_times=500) # 记录每次迭代的模型准确率 train_hist_cb = TrainHistroy(hist['loss']) # 测试并记录模型在验证集的loss和accuracy,并保存最优网络参数 eval_hist_cb = EvalHistory(model = model, loss_history = hist['loss_eval'], acc_history = hist['acc_eval'], eval_data = test_data) %time epoch = 100 # 迭代次数 # 开始训练 model.train(epoch, train_data, callbacks=[train_hist_cb, eval_hist_cb, time_cb, ckpoint_cb, LossMonitor(per_print_times=500)], dataset_sink_mode=dataset_sink_mode) best_param = mindspore.load_checkpoint( os.path.join(ckpt_path, 'best_param.ckpt'), net=network3) res = model.eval(test_data, dataset_sink_mode=dataset_sink_mode) print(res)存在的问题及其解决方法(1).在网络训练的时候会出现过拟合的问题。答:通常用数据扩增,正则化,Dropout方法,提早停止,权重衰减等方法来解决过拟合的问题。在本实验中由于数据量规模小,使用Dropout方法,不仅不能提高模型的分类效果,还会因为丢弃了部分特征而降低分类效果。因此实验中采用了BatchNorm函数来实现不用Dropout方法也能够达到相应的效果(2).网络深度增加导致训练缓慢。答:换用网络租借服务器来提高训练速度。(3).卷积层卷积核增长幅度过大导致训练效果不好。答:卷积核数量增长改为2倍数增长,防止过于注重局部细节。
  • [课程学习] 华为新员工在学的课程长啥样? 扫码立即揭晓!
    华为新员工在学的课程长啥样?扫码立即揭晓!10大专业讲师,19堂精选课程(首次对外开放试听,不要错过啦~)课程链接:cid:link_0
  • [活动公告] 创造HuaweiCloud Tookit 体验活动,反馈领好礼!
    【创造Huawei Cloud Toolkit体验活动】遇见Toolkit,解决开发运维痛点使开发者部署效率提速6倍。与华为云其他产品无缝集成围绕其产品能力向开发者桌面上的延伸打通华为云到开发者的最后一公里。华为云Toolkit致力于为开发者提供更稳定、快速、安全的编程体验。快速、高效集成华为云API深度融合支持用户检索API、查看API文档、调试API。编程过程中支持SDK代码片段补全加速用户集成华为云应用支持快速部署,一键部署到ECS、CCI提供业界规范检查支持一键格式化和代码自动修复。Huawei Cloud Toolkit除了提供以上产品能力以外,还支持包括微服务工程搭建等在内的诸多能力。为了感谢所有为Huawei Cloud Toolkit迭代做出贡献的开发者,Huawei Cloud Toolkit推出【创造Huawei Cloud Toolkit体验活动】,欢迎提出您的反馈建议,我们将记录每一份贡献,从而共同定义一款真正好用的华为云开发者生态工具。产品建议有礼:即日起至【6月18日】登录华为云账号访问Toolkit产品页面,并在【云声】上提交Toolkit的产品改进建议提出关于Toolkit产品新特性需求,提出产品改进建议和用户体验,或者上报bug,并被采纳可以获得建议好礼(活动详情请戳)~3.推广插件,包括发朋友圈、发表文章、推荐给朋友等。截图并联系我们,可免费获取华为云技术领域干货电子书,同时问题被采纳可参与华为云周边礼包抽奖!
  • [培训赋能] 华为数字机器人3.3.0版本新特性赋能##精彩回顾##
    【精彩回放】01_Studio新增控件videovideovideovideovideo02_Studio控件优化videovideovideovideo03_Studio新增特性videovideovideovideo04_管理中心新特性&优化video05_助手优化点videovideo👇胶片请查看此帖末尾附件▶下载地址:cid:link_0▶ 培训时间:2023年4月13日 14:30-16:30【版本亮点预告】支持Python三方件依赖管理能力并发执行:流程控制/调用子脚本 Parallel管理中心团队管理Studio新增控件30+【培训地址】会议链接(4.13日 14:30开启):https://welink.zhumu.com/j/0181969173?pwd=bGFhc0xXMjdxNit3QUp3MEZTa0czUT09会议ID:0181969173        会议密码:810614(请复制会议链接用浏览器打开,按照提示下载客户端,下载后无需注册,重新点击入会。详情请浏览帖子下方附件:操作指导)
  • [热门活动] 【RPA训练营_结业考试】华为数字机器人7天训练营 第三期结业考试,先完成实名认证再考试!
    请务必仔细阅读!!!请务必仔细阅读!!!请务必仔细阅读!!!先完成实名认证再考试!否则证书上的名字非真实姓名,而是账号名称!考试截止到2023年3月31日 24:00考试权限说明:本次考试仅支持完成华为数字机器人7天训练营全部7天打卡任务的开发者参加。考生名单:请点击此链接附件查看所有完成7天打卡的开发者名单(公布的名称为社区昵称(回复打卡时左侧头像下方的名称),非华为云账号,请仔细核对),如对名单有异议,请按照联系华为数字机器人官方小助手。(华为数字机器人官方小助手企业微信二维码,扫码添加)考前准备:本次考试前请您务必将账号实名认证,并准备好身份证以及带有摄像头的PC机参加考试。考试流程:1.点击链接进入考试:cid:link_02.请仔细阅读注意事项再点击查看课程3.请再次阅读注意事项并点击参加考试4.根据系统提示完成摄像头检测、身份证认证最后完成考试即可证书获取说明:通过考试后24小时,会获得证书,获取证书途径如下:1.登录华为云账号2.点击右上角华为云账号,选择个人主页3.下拉页面后点击左侧我的开发者学堂-我的证书,即可获取证书如您通过考试48小时后还没有获得证书,请群内联系华为数字机器人官方小助手沟通解决。
  • [热门活动] #获奖公布【RPA训练营】华为数字机器人实训体验 第二期全新升级~九大综合实训场景,等您来挑战!
    恭喜获奖的各位开发者请大家在4月10日前点击下方链接填写获奖信息我们会在截至日期结束后尽快给您邮礼品如您逾期没有填写,视为主动放弃奖励,望周知获奖信息填写链接:【华为数字机器人7天训练营获奖信息收集表】-活动已结束,获奖名单如下所示,公示1天公示期结束后(4月8日)获奖者可在本帖填写奖品邮寄信息收集表。抽奖说明:此次实训体验共有7人完成华为数字机器人实训体验任务(至少完成1个场景)。奖品及中奖概率:完成华为机器人实训体验任务(至少完成1个场景)的开发者可获得抽奖机会,奖品为华为蓝牙鼠标,奖品数量上限为5份,中奖概率(≤100%)为“5/完成华为机器人实训体验的总人数”。中奖名单如下:序号论坛昵称微信昵称奖品1阿锐阿*华为蓝牙鼠标恭喜获奖开发者,相关抽奖过程可下载附件查看。公示1天,公示期结束后(4月8日)获奖者可在本帖填写奖品邮寄信息收集表。如有异议请联系华为数字机器人沟通。⏰活动时间:2023年3月21日~ 2023年3月31日🎁活动奖励:按要求完成华为机器人实训体验任务(至少完成1个场景)的开发者可获得抽奖机会,奖品为华为蓝牙鼠标,奖品数量上限为5份,中奖概率(≤100%)为“5/完成华为机器人实训体验的总人数”。👉参与方式:开发者需按照>>综合实训场景<<选择至少1个场景完成开发,将对应脚本截图和案例包回复至活动帖内,视为完成任务。注:1、截图务必将右上角华为云账号截进去;2、案例包含可执行的xml文件(要求将用户名和密码等脱敏)3、第一行需注明您实现的场景名称+华为云账号+微信昵称;示例:【案例名称】+【华为云账号】+【微信昵称】附件:案例名称.rar✨活动规则:回复非示例要求图片或其他无效信息,视为无效楼层,并取消抽奖资格。本次活动幸运奖将采用巨公摇号平台(https://www.jugong.wang/random-portal/)进行抽取,如您对评奖方式有异议,请勿参加本次活动。👏综合实训场景以及所需模拟数据,请从附件下载。