当前位置: 首页 > news >正文

建设部网站投诉如何注册写软文的app

建设部网站投诉如何注册,写软文的app,东莞建设专业网站,网站菜单分类怎么做MindSpore基础教程#xff1a;使用 MindCV和 Gradio 创建一个图像分类应用 官方文档教程使用已经弃用的MindVision模块#xff0c;本文是对官方文档的更新 在这篇博客中#xff0c;我们将探索如何使用 MindSpore 框架和 Gradio 库来创建一个基于深度学习的图像分类应用。我…MindSpore基础教程使用 MindCV和 Gradio 创建一个图像分类应用 官方文档教程使用已经弃用的MindVision模块本文是对官方文档的更新 在这篇博客中我们将探索如何使用 MindSpore 框架和 Gradio 库来创建一个基于深度学习的图像分类应用。我们将使用预训练的 ResNet50 模型以 CIFAR-10 数据集为例进行训练并通过 Gradio 接口进行图像分类预测。下面是一个简单、直观的指南适用于希望将深度学习模型转换为交互式应用的开发者。 训练模型 环境设置 首先我们需要设置 GPU 作为训练的目标设备。MindSpore 提供了一个便捷的方式来配置环境。 from mindspore import context context.set_context(device_targetGPU)解析参数 我们使用 argparse 来解析命令行参数。这样可以方便地在训练时调整参数例如数据集路径、学习率和训练周期数。 import argparse def parse_args():解析命令行参数。返回:argparse.Namespace: 包含命令行参数的命名空间。parser argparse.ArgumentParser(description训练 ResNet 模型,formatter_classargparse.ArgumentDefaultsHelpFormatter)parser.add_argument(--pretrain_path, typestr, default,help预训练文件的路径)parser.add_argument(--data_path, typestr, defaultdatasets/drizzlezyk/cifar10/,help训练数据的路径)parser.add_argument(--output_path, defaulttrain/resnet/, typestr,help模型保存路径)parser.add_argument(--epochs, default10, typeint, help训练周期数)parser.add_argument(--lr, default0.0001, typeint, help学习率)return parser.parse_args()创建数据集 使用 MindSpore 的 create_dataset 方法我们可以轻松创建和预处理 CIFAR-10 训练数据集。 from mindcv.data import create_dataset, create_transforms, create_loaderdef create_training_dataset(data_path, batch_size):创建训练数据集。参数:data_path (str): 数据集的路径。batch_size (int): 批量大小。返回:Tuple[DataLoader, int]: 数据加载器和每个 epoch 的批次数量。dataset_train create_dataset(namecifar10, rootdata_path, splittrain, shuffleTrue)transform_train create_transforms(dataset_namecifar10, image_resize224)train_loader create_loader(datasetdataset_train, batch_sizebatch_size, is_trainingTrue,num_classes10, transformtransform_train)num_batches train_loader.get_dataset_size()return train_loader, num_batches 模型训练 接下来我们定义 train_model 函数来实现模型的训练逻辑。这包括模型的初始化、损失函数、优化器的设置以及训练过程的启动。 from mindcv import create_model, create_loss, create_scheduler, create_optimizer from mindspore.train import Model from mindspore import load_checkpoint, load_param_into_netdef train_model(args):训练模型。参数:args (argparse.Namespace): 包含命令行参数的命名空间。train_loader, num_batches create_training_dataset(args.data_path, batch_size32)net create_model(model_nameresnet50, num_classes10)if args.pretrain_path:param_dict load_checkpoint(args.pretrain_path)load_param_into_net(net, param_dict)loss_fn create_loss(nameCE, reductionmean)lr_scheduler create_scheduler(steps_per_epochnum_batches, schedulerconstant, lrargs.lr)optimizer create_optimizer(net.trainable_params(), optadam, lrlr_scheduler)model Model(net, loss_fnloss_fn, optimizeroptimizer, metrics{accuracy})checkpoint_config CheckpointConfig(save_checkpoint_stepsnum_batches, keep_checkpoint_max10)checkpoint_callback ModelCheckpoint(prefixcheckpoint_resnet, directoryargs.output_path,configcheckpoint_config)model.train(args.epochs, train_loader,callbacks[checkpoint_callback, LossMonitor(), TimeMonitor(data_sizenum_batches)]) 构建 Gradio 接口 预测函数 在 Gradio 接口中我们定义一个 predict_image 函数来处理图像输入并返回预测结果。 import gradio as gr import numpy as np from mindspore import Tensor import cv2def predict_image(img):# 创建模型实例net create_model(model_nameresnet50, num_classesNUM_CLASS)param_dict load_checkpoint(/root/MyCode/pycharm/ResNet50/train/resnet/checkpoint_resnet-5_1563.ckpt)load_param_into_net(net, param_dict)# 封装模型为 Model 类实例model Model(net)# 调整图像格式和大小img cv2.resize(img, (224, 224))img np.array(img, dtypenp.float32) / 255.0 # 归一化并确保数据类型为 Float32# 如果图像是 BGR 格式转换为 RGB 格式# img cv2.cvtColor(img, cv2.COLOR_BGR2RGB)# 标准化处理img (img - np.array([0.485, 0.456, 0.406], dtypenp.float32)) / np.array([0.229, 0.224, 0.225], dtypenp.float32)# 转换维度 - 通道优先格式 (C, H, W)img np.transpose(img, (2, 0, 1))# 添加批次维度 (N, C, H, W)img np.expand_dims(img, axis0)# 将图像数据转换为 MindSpore 张量img_tensor Tensor(img, dtypemindspore.float32) # 显式指定数据类型# 预测图像output model.predict(img_tensor)# 应用 Softmax 获取概率softmax Softmax(axis1)predict_probability softmax(output).asnumpy()predict_probability predict_probability[0] # 获取批量中的第一个元素# 将预测概率映射到类别名称return {class_names[i]: float(predict_probability[i]) for i in range(NUM_CLASS)}Gradio 界面 使用 Gradio我们可以快速构建一个交互式界面。用户可以上传图片模型将返回图像分类的预测结果。 image gr.Image() label gr.Label(num_top_classesNUM_CLASS)gr.Interface(css.footer {display:none !important},fnpredict_image,inputsimage,liveFalse,descriptionPlease upload a image in JPG, JPEG or PNG.,titleImage Classification by ResNet50,outputsgr.Label(num_top_classesNUM_CLASS, label预测类别),examples[./example_img/airplane.jpg, ./example_img/automobile.jpg, ./example_img/bird.jpg,./example_img/cat.jpg, ./example_img/deer.jpg, ./example_img/dog.jpg,./example_img/frog.jpg, ./example_img/horse.JPG, ./example_img/ship.jpg,./example_img/truck.jpg]).launch(shareTrue)完整代码 import argparsefrom mindcv import create_model, create_loss, create_scheduler, create_optimizer from mindspore.train import Model from mindspore import load_checkpoint, load_param_into_net from mindcv.data import create_dataset, create_transforms, create_loader from mindspore import LossMonitor, TimeMonitor, CheckpointConfig, ModelCheckpoint# 设置GPU from mindspore import contextcontext.set_context(device_targetGPU)def parse_args():解析命令行参数。返回:argparse.Namespace: 包含命令行参数的命名空间。parser argparse.ArgumentParser(description训练 ResNet 模型,formatter_classargparse.ArgumentDefaultsHelpFormatter)parser.add_argument(--pretrain_path, typestr, default,help预训练文件的路径)parser.add_argument(--data_path, typestr, defaultdatasets/drizzlezyk/cifar10/,help训练数据的路径)parser.add_argument(--output_path, defaulttrain/resnet/, typestr,help模型保存路径)parser.add_argument(--epochs, default10, typeint, help训练周期数)parser.add_argument(--lr, default0.0001, typeint, help学习率)return parser.parse_args()def create_training_dataset(data_path, batch_size):创建训练数据集。参数:data_path (str): 数据集的路径。batch_size (int): 批量大小。返回:Tuple[DataLoader, int]: 数据加载器和每个 epoch 的批次数量。dataset_train create_dataset(namecifar10, rootdata_path, splittrain, shuffleTrue)transform_train create_transforms(dataset_namecifar10, image_resize224)train_loader create_loader(datasetdataset_train, batch_sizebatch_size, is_trainingTrue,num_classes10, transformtransform_train)num_batches train_loader.get_dataset_size()return train_loader, num_batchesdef train_model(args):训练模型。参数:args (argparse.Namespace): 包含命令行参数的命名空间。train_loader, num_batches create_training_dataset(args.data_path, batch_size32)net create_model(model_nameresnet50, num_classes10)if args.pretrain_path:param_dict load_checkpoint(args.pretrain_path)load_param_into_net(net, param_dict)loss_fn create_loss(nameCE, reductionmean)lr_scheduler create_scheduler(steps_per_epochnum_batches, schedulerconstant, lrargs.lr)optimizer create_optimizer(net.trainable_params(), optadam, lrlr_scheduler)model Model(net, loss_fnloss_fn, optimizeroptimizer, metrics{accuracy})checkpoint_config CheckpointConfig(save_checkpoint_stepsnum_batches, keep_checkpoint_max10)checkpoint_callback ModelCheckpoint(prefixcheckpoint_resnet, directoryargs.output_path,configcheckpoint_config)model.train(args.epochs, train_loader,callbacks[checkpoint_callback, LossMonitor(), TimeMonitor(data_sizenum_batches)])if __name__ __main__:train_model(parse_args()) import gradio as gr import numpy as np from mindspore import Tensor from mindspore.nn import Softmax import cv2 from typing import Type, Union, List, Optional from mindspore import nn from mindspore import load_checkpoint, load_param_into_net from mindspore.train import Model from mindcv.models import create_model import mindsporeprint(mindspore.__version__)NUM_CLASS 10 class_names [airplane, automobile, bird, cat, deer, dog, frog, horse, ship, truck]def predict_image(img):# 创建模型实例net create_model(model_nameresnet50, num_classesNUM_CLASS)param_dict load_checkpoint(/root/MyCode/pycharm/ResNet50/train/resnet/checkpoint_resnet-5_1563.ckpt)load_param_into_net(net, param_dict)# 封装模型为 Model 类实例model Model(net)# 调整图像格式和大小img cv2.resize(img, (224, 224))img np.array(img, dtypenp.float32) / 255.0 # 归一化并确保数据类型为 Float32# 如果图像是 BGR 格式转换为 RGB 格式# img cv2.cvtColor(img, cv2.COLOR_BGR2RGB)# 标准化处理img (img - np.array([0.485, 0.456, 0.406], dtypenp.float32)) / np.array([0.229, 0.224, 0.225], dtypenp.float32)# 转换维度 - 通道优先格式 (C, H, W)img np.transpose(img, (2, 0, 1))# 添加批次维度 (N, C, H, W)img np.expand_dims(img, axis0)# 将图像数据转换为 MindSpore 张量img_tensor Tensor(img, dtypemindspore.float32) # 显式指定数据类型# 预测图像output model.predict(img_tensor)# 应用 Softmax 获取概率softmax Softmax(axis1)predict_probability softmax(output).asnumpy()predict_probability predict_probability[0] # 获取批量中的第一个元素# 将预测概率映射到类别名称return {class_names[i]: float(predict_probability[i]) for i in range(NUM_CLASS)}image gr.Image() label gr.Label(num_top_classesNUM_CLASS)gr.Interface(css.footer {display:none !important},fnpredict_image,inputsimage,liveFalse,descriptionPlease upload a image in JPG, JPEG or PNG.,titleImage Classification by ResNet50,outputsgr.Label(num_top_classesNUM_CLASS, label预测类别),examples[./example_img/airplane.jpg, ./example_img/automobile.jpg, ./example_img/bird.jpg,./example_img/cat.jpg, ./example_img/deer.jpg, ./example_img/dog.jpg,./example_img/frog.jpg, ./example_img/horse.JPG, ./example_img/ship.jpg,./example_img/truck.jpg]).launch(shareTrue) 总结 通过 MindSpore 和 Gradio我们可以不仅训练强大的深度学习模型还可以将这些模型转化为交互式应用使非专业人士也能轻松体验 AI 的魅力。
http://www.pierceye.com/news/657389/

相关文章:

  • 做logo图标的网站自助建站系统网站建设开发
  • 韩国站群服务器网络推广公司网站
  • 网站公司设计公司设计上海展会2021门票
  • 做微网站的公司哪家好刷百度关键词排名优化
  • php网站建设一流程胶南网站建设多少钱
  • 网站开发证书网站推广应该怎么做?
  • 网站规划与网页设计案例网站建设php招聘
  • 网站内容页优化阿里巴巴做网站么
  • 网站百度收录秒收方法网页制作员厂家
  • 免费做网站怎么做网站619去加网 wordpress
  • 网站建设基本资料信息流优化师是干什么的
  • 网站开发项目经理招聘高级网站设计效果图
  • 上海建网站社交型网站开发
  • 西安建网站做自动化设备哪个网站
  • 深圳优化网站关键词wordpress如何拖移小工具
  • 优秀网站设计欣赏国内网站后期
  • 计算机应用技术php网站开发php网站进后台
  • asp网站安全小x导航正品
  • 陕西省建设监理协会网站成绩查询如何用网站做课件
  • 帝国网站怎么仿站个人做旅游网站的意义
  • 网站建设白沟做公众号策划的网站
  • 站长工具怎么用知名做网站哪家好
  • 做视频网站怎么备案企业内网
  • 建设网站南沙区建湖做网站找哪家好
  • 做网站应该会什么问题视频网站做app
  • 南阳做网站费用企业品牌维护
  • 分形科技做网站怎么样网站常用的js效果
  • 做企业展示网站网站建设与制作段考试题
  • 设计网站哪个好用网站建设策划方案t
  • 化妆培训学校网站建设徐州市工程建设交易平台