-
【活动总结】2024 年 11月 1日-2024年11月15日,华为开发者布道师、桂林电子科技大学李明辉同学在线下组织了围绕mindspore框架和昇腾边缘设备的两次布道活动,本次参与活动的同学来自数学与计算机科学学院与人工智能学院共两百余名学生。活动开始,李明辉同学以通俗易懂的语言为大家详细介绍了MindSpore框架的优势。他强调,MindSpore作为一款面向AI应用的全场景深度学习框架,具有易用、高效、安全等特点,为广大开发者提供了极大的便利。在场的大一同学们纷纷表示对MindSpore框架产生了浓厚兴趣。针对大一新生,李明辉同学贴心地为他们规划了学习昇思框架的路线,并手把手教会了同学们如何利用ATC(Ascend Tensor Compiler)转换自己的模型。这一环节让在场的同学们对人工智能技术的实际应用有了更深刻的认识。NPU案例分享在NPU案例分享环节,李明辉同学向大家展示了魔乐社区的体验空间,并详细讲解了如何离线部署属于自己的模型。这一环节让同学们感受到了人工智能技术的魅力,也为他们今后的学术研究和项目实践奠定了基础。案例分享紧接着,李明辉同学为本科生们介绍了华为云最新云主机,让同学们亲身体验到了云开发的便捷与高效。他通过实际操作演示,让同学们对华为云的技术实力有了更直观的了解。活动照片1活动照片2活动照片3此次活动的成功举办,不仅提高了同学们对人工智能技术的认识,还为他们提供了一个交流学习的平台。相信在未来的学习和实践中,同学们将不断探索,为我国人工智能领域的发展贡献自己的力量。
-
【活动总结】2024 年 11月 1日-2024年11月10日,华为开发者布道师、桂林电子科技大学李明辉同学在线下组织了围绕mindspore框架和昇腾边缘设备的两次布道活动,本次参与活动的同学来自数学与计算机科学学院与人工智能学院共两百余名学生。活动开始,李明辉同学以通俗易懂的语言为大家详细介绍了MindSpore框架的优势。他强调,MindSpore作为一款面向AI应用的全场景深度学习框架,具有易用、高效、安全等特点,为广大开发者提供了极大的便利。在场的大一同学们纷纷表示对MindSpore框架产生了浓厚兴趣。针对大一新生,李明辉同学贴心地为他们规划了学习昇思框架的路线,并手把手教会了同学们如何利用ATC(Ascend Tensor Compiler)转换自己的模型。这一环节让在场的同学们对人工智能技术的实际应用有了更深刻的认识。NPU案例分享在NPU案例分享环节,李明辉同学向大家展示了魔乐社区的体验空间,并详细讲解了如何离线部署属于自己的模型。这一环节让同学们感受到了人工智能技术的魅力,也为他们今后的学术研究和项目实践奠定了基础。案例分享紧接着,李明辉同学为本科生们介绍了华为云最新云主机,让同学们亲身体验到了云开发的便捷与高效。他通过实际操作演示,让同学们对华为云的技术实力有了更直观的了解。活动照片1活动照片2活动照片3此次活动的成功举办,不仅提高了同学们对人工智能技术的认识,还为他们提供了一个交流学习的平台。相信在未来的学习和实践中,同学们将不断探索,为我国人工智能领域的发展贡献自己的力量。
-
活动信息【活动主题】:昇思MindSpore:AI 领域的创新力量与跨平台之路【报名链接】:https://developer.huawei.com/home/activity/60b58a1735f24db681a1641429a6932c【直播时间】:2024/10/21 19:00-20:30【直播嘉宾】:华为开发者布道师、郑州轻工业大学梅科尔工作室核心成员陈新杰【直播链接】:待定【直播简介】:深度探索昇思 MindSpore 在 AI 领域的精彩应用,剖析技术精髓,通过医疗创新案例展示实际应用与技术突破,涵盖问题识别到解决方案全过程,重点介绍算法关键步骤,还简述 PyTorch 到 MindSpore 框架转换技巧,为开发者提供跨平台开发指南。【直播福利】:福利一:互动有礼1.礼品列表:定制开发者布道师Polo杉,抽华为定制充电宝2.拟定互动口令,便于官网直播间发口令“华为开发者布道师”抽 华为精美礼品福利二:有奖提问1.礼品列表:定制开发者布道师保温杯福利三:连续打卡1.后续会上线一系列的开发者布道师线上直播活动,连续参加活动并签到的开发者,会获得连续签到激励,奖品多多,敬请期待!
-
mindspore1.10版本,在推理阶段,当我将model(x)放入 dataset.create_dict_iterator() 的遍历里的时候,就会报错,如图RuntimeError: Illegal AnfNode for evaluating, node: @BatchNorm.16:фdout(type:Parameter), fg: BatchNorm.16 conf: Node: 0x1fef5d48e10/@BatchNorm.16:фdout-uid(1695), Context: 0x1fef5ca0ab0/{FuncGraph: BatchNorm.16 Args: [0]: AbstractTensor(shape: (1, 32, 40, 99), element: AbstractScalar(Type: Float32, Value: AnyValue, Shape: NoShape), value_ptr: 0x1feec42ef90, value: AnyValue), [1]: AbstractTensor(shape: (32), element: AbstractScalar(Type: Float32, Value: AnyValue, Shape: NoShape), value_ptr: 0x1feec42ef90, value: AnyValue), [2]: AbstractTensor(shape: (32), element: AbstractScalar(Type: Float32, Value: AnyValue, Shape: NoShape), value_ptr: 0x1feec42ef90, value: AnyValue), [3]: AbstractTensor(shape: (32), element: AbstractScalar(Type: Float32, Value: AnyValue, Shape: NoShape), value_ptr: 0x1feec42ef90, value: AnyValue), [4]: AbstractTensor(shape: (32), element: AbstractScalar(Type: Float32, Value: AnyValue, Shape: NoShape), value_ptr: 0x1feec42ef90, value: AnyValue), [5]: AbstractTuple{element[0]: AbstractTensor(shape: (1, 32, 40, 99), element: AbstractScalar(Type: Float32, Value: AnyValue, Shape: NoShape), value_ptr: 0x1feec42ef90, value: AnyValue), element[1]: AbstractTensor(shape: (32), element: AbstractScalar(Type: Float32, Value: AnyValue, Shape: NoShape), value_ptr: 0x1feec42ef90, value: AnyValue), element[2]: AbstractTensor(shape: (32), element: AbstractScalar(Type: Float32, Value: AnyValue, Shape: NoShape), value_ptr: 0x1feec42ef90, value: AnyValue), element[3]: AbstractTensor(shape: (32), element: AbstractScalar(Type: Float32, Value: AnyValue, Shape: NoShape), value_ptr: 0x1feec42ef90, value: AnyValue), element[4]: AbstractTensor(shape: (32), element: AbstractScalar(Type: Float32, Value: AnyValue, Shape: NoShape), value_ptr: 0x1feec42ef90, value: AnyValue)}, [6]: AbstractTuple{element[0]: AbstractTensor(shape: (1, 32, 40, 99), element: AbstractScalar(Type: Float32, Value: AnyValue, Shape: NoShape), value_ptr: 0x1feec42ef90, value: AnyValue), element[1]: AbstractTensor(shape: (32), element: AbstractScalar(Type: Float32, Value: AnyValue, Shape: NoShape), value_ptr: 0x1feec42ef90, value: AnyValue), element[2]: AbstractTensor(shape: (32), element: AbstractScalar(Type: Float32, Value: AnyValue, Shape: NoShape), value_ptr: 0x1feec42ef90, value: AnyValue), element[3]: AbstractTensor(shape: (32), element: AbstractScalar(Type: Float32, Value: AnyValue, Shape: NoShape), value_ptr: 0x1feec42ef90, value: AnyValue), element[4]: AbstractTensor(shape: (32), element: AbstractScalar(Type: Float32, Value: AnyValue, Shape: NoShape), value_ptr: 0x1feec42ef90, value: AnyValue)}, Parent: { Args: }}, FuncGraph: 0x1fef5d07210/BatchNorm.16。但是如果直接把model(x)放在遍历外面就没有问题,如图
-
2024年9月28日,在布道师李明辉的自发组织,桂林电子科技大学数学与计算机科学学院“最美燕亭”系列报告会暨华为开发者布道师活动“香橙派AIPro实践活动”顺利开展,本次活动主要覆盖了Mindspore框架的介绍以及如何利用香橙派AIpro进行目标检测任务。活动宣传照片活动现场照片本次活动布道师李明辉向学院研一的同学们从浅到深的介绍了Mindspore开源社区,并且详细的介绍了各个Mindspore的套件。活动现场照片同时还向大家介绍了搭载NPU的边缘设备——香橙派AIPro并进行了实际的案例分享。改进后的模型本次活动向大家展现了如何改进轻量化的yolov5模型,摘除Focus层,避免多次采用slice操作。避免多次使用C3 Leyer以及高通道的C3 Layer减少噪音。摘除shufflenetv2 backbone的1024 conv 和 5×5 pooling数据增强通过调用Mindspore接口,在训练前对数据进行增强,提高了模型的鲁棒性。模型推理同时通过现场演示,向大家展示了香橙派AIpro如何利用NPU进行模型推理。避障方案演示
-
def process_dataset(dataset, processor, max_seq_len=128, batch_size=16, shuffle=False): def process_image(image): image = Image.fromarray(image.astype('uint8'), 'L') image = image.convert("RGB") pixel_values = processor(image, return_tensors="ms").pixel_values return pixel_values dataset = dataset.map(operations=process_image, input_columns="image", output_columns='image') dataset = dataset.map(operations=text_tokenizer, input_columns="text", output_columns="text") dataset = dataset.batch(batch_size) return dataset train_dataset = process_dataset(iam["train"],processor=processor) for batch in train_dataset1.create_dict_iterator(): print(batch['image'].dtype)iam["train"]为mindspore.dataset.engine.datasets_user_defined.GeneratorDataset运行时报错ValueError Traceback (most recent call last) in <cell line: 1>() ----> 1 for batch in train_dataset1.create_dict_iterator(): 2 print(batch['image'].dtype) 3 break/usr/local/lib/python3.10/dist-packages/mindspore/dataset/engine/datasets.py in parse_tree(self, getter_mode) 422 """ 423 if len(self.parent) > 1: --> 424 raise ValueError("The data pipeline is not a tree (i.e., one node has 2 consumers)") 425 ir_children = [d.parse_tree(getter_mode) for d in self.children] 426 # Bootstrap can only be performed on a copy of the original dataset node.ValueError: The data pipeline is not a tree (i.e., one node has 2 consumers)
-
转换命令:(MindSpore) [ma-user work]$atc --model=./resnet50_v1.onnx --framework=5 --output=./onnx_resnet50 --soc_version=Ascend910A报错:ATC start working now, please wait for a moment. Traceback (most recent call last): File "/usr/local/Ascend/ascend-toolkit/latest/python/site-packages/te_fusion/fusion_util.py", line 2357, in multi_process_check if not fix_forkserver(): File "/usr/local/Ascend/ascend-toolkit/latest/python/site-packages/te_fusion/fusion_util.py", line 2334, in fix_forkserver fs.ensure_running() File "/usr/lib64/python3.7/multiprocessing/forkserver.py", line 111, in ensure_running data = spawn.get_preparation_data('ignore') File "/usr/lib64/python3.7/multiprocessing/spawn.py", line 163, in get_preparation_data sys_argv=sys.argv, AttributeError: module 'sys' has no attribute 'argv' ATC run failed, Please check the detail log, Try 'atc --help' for more information E29999: Inner Error! E29999 [GraphOpt][InitializeInner][InitTbeFunc] Failed to init tbe.[FUNC:InitializeInner][FILE:tbe_op_store_adapter.cc][LINE:1338] [SubGraphOpt][PreCompileOp][InitAdapter] InitializeAdapter adapter [tbe_op_adapter] failed! Ret [4294967295][FUNC:InitializeAdapter][FILE:op_store_adapter_manager.cc][LINE:67] [SubGraphOpt][PreCompileOp][Init] Initialize op store adapter failed, OpsStoreName[tbe-custom].[FUNC:Initialize][FILE:op_store_adapter_manager.cc][LINE:114] [FusionMngr][Init] Op store adapter manager init failed.[FUNC:Initialize][FILE:fusion_manager.cc][LINE:326] PluginManager InvokeAll failed.[FUNC:Initialize][FILE:ops_kernel_manager.cc][LINE:99] OpsManager initialize failed.[FUNC:InnerInitialize][FILE:gelib.cc][LINE:167] GELib::InnerInitialize failed.[FUNC:Initialize][FILE:gelib.cc][LINE:119] PYTHONPATH是:(MindSpore) [ma-user work]$echo $PYTHONPATH/home/ma-user/anaconda3/envs/MindSpore/lib/python3.7/site-packages/:/home/ma-user/anaconda3/envs/MindSpore/lib:/usr/local/Ascend/tfplugin/latest/python/site-packages:/usr/local/Ascend/ascend-toolkit/latest/python/site-packages:/usr/local/Ascend/ascend-toolkit/latest/opp/op_impl/built-in/ai_core/tbe:/usr/local/seccomponent/lib:/home/ma-user/infer/model/1
-
最近在看mindspore中的特性有关于图算融合的介绍,关于图算融合,社区教程里介绍的更多是算子融合,如何理解图算融合里的图呢,图算融合跟算子融合具体又有什么区别呢
-
存入buffer的reward作用是什么?
-
我的环境Python 3.9.19 软件mindspore 2.2.0 库cuda11.6 cudnn8.32或者7.65 运行报错:RuntimeError: For 'MatMul', encountered an exception: ---------------------------------------------------- - cuBLAS Error: ---------------------------------------------------- cublasGemmEx failed. Possible reasons: the GPU is occupied by other processes. | Error Number: 7 CUBLAS_STATUS_INVALID_VALUE: An unsupported value or parameter was passed to the function (a negative vector size, for example). ---------------------------------------------------- - C++ Call Stack: (For framework developers) ---------------------------------------------------- mindspore/ccsrc/plugin/device/gpu/kernel/math/matmul_gpu_kernel.cc:174 LaunchKernel mindspore/ccsrc/plugin/device/gpu/kernel/math/matmul_gpu_kernel.cc:162 LaunchKernel when invoke cublas cublasGemmEx [WARNING] MD(4169705,153339026680,python):2024-05-18-12:51:20.395.751 [mindspore/ccsrc/minddata/dataset/engine/datasetops/data_queue_op.cc:163] ~DataQueueOp] preprocess_batch: 4; batch_queue: 0, 0, 0, 0, 0, 0, 4, 3, 10; push_start_time -> push_end_time 2024-05-18-12:51:07.013.040 -> 2024-05-18-12:51:07.013.522 2024-05-18-12:51:07.721.456 -> 2024-05-18-12:51:07.721.914 2024-05-18-12:51:08.688.257 -> 2024-05-18-12:51:15.828.695 2024-05-18-12:51:15.828.722 -> 2024-05-18-12:51:20.381.705 For more details, please refer to the FAQ at https://www.mindspore.cn/docs/en/master/faq/data_processing.html. 我看有四个->进程,尝试1,2,4卡均该报错,看论坛解决方法有:有一样的报错,说看被其他进程占了,我脚本加上nvidia-smi 初始化后看没有任何进程有人说cuda和cublas不匹配,我看cuda11.6,cublasLt.so.11.8.1.74和其他机器上cuda11.6和cublas版本一模一样的,故cuda排除还有人说是cudnn8不能初始显卡,脚本写的832我换成765就依然是Error Number: 7目前没有头绪,cuda,cudnn这些都是管理员装的,应该也不存在问题
-
按照官方教程创建了新的虚拟环境,并成功安装了MindSpore (https://gitee.com/mindspore/docs/blob/r2.2/install/mindspore_cpu_win_install_conda.md#https://gitee.com/link?target=https%3A%2F%2Fwww.mindspore.cn%2Fversions)。在学习初级教程的过程中,需要用到download这个模块(https://gitee.com/mindspore/docs/blob/master/tutorials/source_zh_cn/beginner/quick_start.ipynb#https://gitee.com/link?target=https%3A%2F%2Fwww.mindspore.cn%2Ftutorials%2Fzh-CN%2Fmaster%2Fbeginner%2Fsave_load.html),在系统级环境中使用命令pip install download能成功安装,但在虚拟环境中一直报错是为什么?
-
添加图片的时候路径没问题、传入图片的位置也没问题,但图片就是显示不出来,是哪个步骤出错了吗?或者有没有其他上传图片的方法?路径设置:传入位置:显示结果:
-
modelarts控制台的notebook有没有关于mindspore模型的实例呢,具体在哪可以找到?
-
1、成功安装atlas300-3010相关驱动等成功安装Ascend-cann-toolkit_5.1.RC2_linux-x86_64.runmindspore_ascend-1.8.0-cp37-cp37m-linux_x86_64.whl2、执行python3 -c "import mindspore;mindspore.set_context(device_target='Ascend');mindspore.run_check()"MindSpore version: 1.8.0 MindSpore running check failed. Internal Error: Get Device HBM memory size failed, ret = 0, total HBM size :0 ---------------------------------------------------- - C++ Call Stack: (For framework developers) ---------------------------------------------------- mindspore/ccsrc/plugin/device/ascend/hal/device/ascend_memory_adapter.cc:53 Initialize 3、复用分类代码,写了一个python文件叫ResNet-1.8.pyhttps://www.mindspore.cn/tutorials/zh-CN/r1.8/beginner/infer.html其中设置了调用设备的方式;parser = argparse.ArgumentParser(description='MindSpore Example') parser.add_argument('--device_target', type=str, default="Ascend", choices=['Ascend', 'GPU', 'CPU']) args = parser.parse_args() context.set_context(mode=context.GRAPH_MODE, device_target=args.device_target)执行python3 ResNet-1.8.py,得到Delete parameter from checkpoint: head.classifier.weight Delete parameter from checkpoint: head.classifier.bias Delete parameter from checkpoint: moments.head.classifier.weight Delete parameter from checkpoint: moments.head.classifier.bias [WARNING] ME(46532:140370453165888,MainProcess):2024-01-26-13:57:07.963.642 [mindspore/train/serialization.py:712] For 'load_param_into_net', 2 parameters in the 'net' are not loaded, because they are not in the 'parameter_dict', please check whether the network structure is consistent when training and loading checkpoint. [WARNING] ME(46532:140370453165888,MainProcess):2024-01-26-13:57:07.963.854 [mindspore/train/serialization.py:714] head.classifier.weight is not loaded. [WARNING] ME(46532:140370453165888,MainProcess):2024-01-26-13:57:07.963.911 [mindspore/train/serialization.py:714] head.classifier.bias is not loaded. Traceback (most recent call last): File "ResNet-1.8.py", line 122, in <module> callbacks=None) File "/usr/local/lib/python3.7/site-packages/mindspore/train/model.py", line 1069, in train initial_epoch=initial_epoch) File "/usr/local/lib/python3.7/site-packages/mindspore/train/model.py", line 96, in wrapper func(self, *args, **kwargs) File "/usr/local/lib/python3.7/site-packages/mindspore/train/model.py", line 622, in _train cb_params, sink_size, initial_epoch, valid_infos) File "/usr/local/lib/python3.7/site-packages/mindspore/train/model.py", line 681, in _train_dataset_sink_process dataset_helper=dataset_helper) File "/usr/local/lib/python3.7/site-packages/mindspore/train/model.py", line 437, in _exec_preprocess dataset_helper = DatasetHelper(dataset, dataset_sink_mode, sink_size, epoch_num) File "/usr/local/lib/python3.7/site-packages/mindspore/train/dataset_helper.py", line 338, in __init__ self.iter = iterclass(dataset, sink_size, epoch_num) File "/usr/local/lib/python3.7/site-packages/mindspore/train/dataset_helper.py", line 557, in __init__ super().__init__(dataset, sink_size, epoch_num) File "/usr/local/lib/python3.7/site-packages/mindspore/train/dataset_helper.py", line 455, in __init__ is_dynamic_shape=self.dynamic_shape) File "/usr/local/lib/python3.7/site-packages/mindspore/train/_utils.py", line 77, in _exec_datagraph need_run=need_run) File "/usr/local/lib/python3.7/site-packages/mindspore/common/api.py", line 1009, in init_dataset need_run=need_run): RuntimeError: Internal Error: Get Device HBM memory size failed, ret = 0, total HBM size :0 ---------------------------------------------------- - C++ Call Stack: (For framework developers) ---------------------------------------------------- mindspore/ccsrc/plugin/device/ascend/hal/device/ascend_memory_adapter.cc:53 Initialize 4、执行npu-smi info,得到信息如下:+--------------------------------------------------------------------------------------------------------+ | npu-smi 22.0.4 Version: 22.0.4 | +-------------------------------+-----------------+------------------------------------------------------+ | NPU Name | Health | Power(W) Temp(C) Hugepages-Usage(page) | | Chip Device | Bus-Id | AICore(%) Memory-Usage(MB) | +===============================+=================+======================================================+ | 1 310 | OK | 12.8 59 0 / 969 | | 0 0 | 0000:3D:00.0 | 0 666 / 7759 | +-------------------------------+-----------------+------------------------------------------------------+ | 1 310 | OK | 12.8 60 0 / 969 | | 1 1 | 0000:3E:00.0 | 0 626 / 7759 | +-------------------------------+-----------------+------------------------------------------------------+ | 1 310 | OK | 12.8 59 0 / 969 | | 2 2 | 0000:3F:00.0 | 0 628 / 7759 | +-------------------------------+-----------------+------------------------------------------------------+ | 1 310 | OK | 12.8 59 0 / 969 | | 3 3 | 0000:40:00.0 | 0 627 / 7759 | +===============================+=================+======================================================+
-
目的与要求实验目的:学习 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)
推荐直播
-
Skill 构建 × 智能创作:基于华为云码道的 AI 内容生产提效方案2026/03/25 周三 19:00-20:00
余伟,华为云软件研发工程师/万邵业(万少),华为云HCDE开发者专家
本次直播带来两大实战:华为云码道 Skill-Creator 手把手搭建专属知识库 Skill;如何用码道提效 OpenClaw 小说文本,打造从大纲到成稿的 AI 原创小说全链路。技术干货 + OPC创作思路,一次讲透!
回顾中 -
码道新技能,AI 新生产力——从自动视频生成到开源项目解析2026/04/08 周三 19:00-21:00
童得力-华为云开发者生态运营总监/何文强-无人机企业AI提效负责人
本次华为云码道 Skill 实战活动,聚焦两大 AI 开发场景:通过实战教学,带你打造 AI 编程自动生成视频 Skill,并实现对 GitHub 热门开源项目的智能知识抽取,手把手掌握 Skill 开发全流程,用 AI 提升研发效率与内容生产力。
回顾中 -
华为云码道:零代码股票智能决策平台全功能实战2026/04/18 周六 10:00-12:00
秦拳德-中软国际教育卓越研究院研究员、华为云金牌讲师、云原生技术专家
利用Tushare接口获取实时行情数据,采用Transformer算法进行时序预测与涨跌分析,并集成DeepSeek API提供智能解读。同时,项目深度结合华为云CodeArts(码道)的代码智能体能力,实现代码一键推送至云端代码仓库,建立起高效、可协作的团队开发新范式。开发者可快速上手,从零打造功能完整的个股筛选、智能分析与风险管控产品。
回顾中
热门标签