滨湖区知名做网站选哪家备案 几个网站

pingmian/2026/1/21 1:32:49/文章来源:
滨湖区知名做网站选哪家,备案 几个网站,h5网站建设建站,wordpress 图片网站1.问题简介 1.1问题描述 在这个问题中#xff0c;你将面临一个经典的机器学习分类挑战——猫狗大战。你的任务是建立一个分类模型#xff0c;能够准确地区分图像中是猫还是狗。 1.2预期解决方案 你的目标是通过训练一个机器学习模型#xff0c;使其在给定一张图像时能够准…1.问题简介 1.1问题描述 在这个问题中你将面临一个经典的机器学习分类挑战——猫狗大战。你的任务是建立一个分类模型能够准确地区分图像中是猫还是狗。  1.2预期解决方案 你的目标是通过训练一个机器学习模型使其在给定一张图像时能够准确地预测图像中是猫还是狗。模型应该能够推广到未见过的图像并在测试数据上表现良好。我们期待您将其部署到模拟的生产环境中——这里推理时间和二分类准确度F1分数将作为评分的主要依据。 1.3数据集 链接百度网盘 请输入提取码 提取码jc34 2.数据处理 2.1数据集特征 训练数据集包括 25000 张图片其中类别为猫的图片有 12500 张图片类别为狗的图片有12500 张两种类别比例为 1:1 2.2数据预处理 将数据 resize 到 224×224×3 的维度Cats vs. Dogs 数据集中的数据较为干净不需要额外的清洗工作。 图片数据集的命名方式是 type.num.jpg根据文件的命名将不同类别的图片划分到 cat 和 dog 两个文件夹中。 划分后的文件夹结构在 train 文件夹下有 Cats 和 Dogs 两 个文件夹每个包含 12500 张样本图片数据集结构。由于没有测试集文件由于验证模型因此后续只使用train文件将其按4:1比例分割出测试集文件。 2.3数据集划分 猫狗分类图片数据集的命名方式是 type.num.jpg首先根据train目录下的文件名称前缀识别动物类别并且将其放入对应文件夹cat、dog中。 # 指定目录 source_dir ./dataset/train dogs_dir ./train_data/dog cats_dir ./train_data/cat# 创建目标目录 os.makedirs(dogs_dir, exist_okTrue) os.makedirs(cats_dir, exist_okTrue)# 获取目录下所有文件 files os.listdir(source_dir)# 遍历文件 for file in files: # 根据前缀分类if file.startswith(dog):shutil.move(os.path.join(source_dir, file), os.path.join(dogs_dir, file))elif file.startswith(cat):shutil.move(os.path.join(source_dir, file), os.path.join(cats_dir, file))划分测试集由于需要测试数据验证模型好坏将从cat与dog目录中随机取出20%的数据作为测试集。 # 源目录路径 src_dir ./train_data# 目标目录路径 dst_dir ./test_data# 确保目标目录存在 if not os.path.exists(dst_dir):os.makedirs(dst_dir)# 遍历源目录下的cat和dog子目录 for animal in [cat, dog]:src_animal_dir os.path.join(src_dir, animal)dst_animal_dir os.path.join(dst_dir, animal)# 确保动物子目录在目标目录下存在if not os.path.exists(dst_animal_dir):os.makedirs(dst_animal_dir)# 获取源目录下所有图片文件img_files [f for f in os.listdir(src_animal_dir) if os.path.isfile(os.path.join(src_animal_dir, f)) and f.endswith((.jpg, .png, .jpeg))]# 计算需要移动的图片数量20%num_to_move int(len(img_files) * 0.2)# 随机选取20%的图片selected_files random.sample(img_files, num_to_move)# 移动选中的图片到目标目录for file in selected_files:src_file_path os.path.join(src_animal_dir, file)dst_file_path os.path.join(dst_animal_dir, file)shutil.move(src_file_path, dst_file_path)print(已完成图片迁移操作) 2.4数据加载器的构建  数据预处理transforms.Compose类定义了一系列图像转换操作。         注意标签是由ImageFolder类通过目录结构自动获取的。ImageFolder会将cat和dog作为标签内部创建一个字典来映射类别名称到索引并且每个子目录中的图片都将被标记为相应的类别如{cat: 0, dog: 1}。 # 数据预处理 transform transforms.Compose([transforms.Resize((224, 224)),transforms.ToTensor(),transforms.Normalize(mean[0.485, 0.456, 0.406], std[0.229, 0.224, 0.225]) ])# 数据集路径 train_dir ./train_data# 创建ImageFolder实例时使用filter参数来排除不需要的文件夹 train_dataset ImageFolder(train_dir, transformtransform)# 创建数据加载器 train_loader DataLoader(train_dataset, batch_size16, shuffleTrue, num_workers4)# 数据长度 print(len(train_dataset)) # 标签 # print(train_dataset.classes) # 输出: [cat, dog] print(train_dataset.class_to_idx) # 输出: {cat: 0, dog: 1} 报错有可能出现错误——在遍历加载图片使遇见了“.ipynb_checkpoints”具体产生原因未知。 # 通常.ipynb_checkpoints 是 Jupyter Notebook 的自动保存副本存放位置 # 查找 .ipynb_checkpoints 目录并删除包括其所有子文件和子目录 checkpoints_path os.path.join(train_dir, .ipynb_checkpoints) if os.path.exists(checkpoints_path):shutil.rmtree(checkpoints_path) else:print(fThe directory {checkpoints_path} does not exist and therefore cannot be removed.) 数据加载器——训练集 train_loader​​​​ 数据加载器——测试集 test_loader 3.猫狗分类器设计 3.1模型选择 ResNet18是深度残差网络Residual Network的一个具体实现。该网络架构的设计目的是为了缓解随着网络深度增加带来的梯度消失和训练困难问题。ResNet通过引入“残差块”Residual Block结构来改进传统的卷积神经网络CNN使得网络能够更容易地学习到更深层次的特征表达。ResNet18之所以得名是因为它有18层深不包括输入层和输出层其深层设计得益于残差连接机制。这种结构使得网络可以轻易地构建超过100层甚至更深而不会遇到梯度消失或梯度爆炸的问题因此它具有很强的深度可扩展性。所以本次研究选用了 ResNet18模型。 3.2平台搭建 硬件平台 本研究采用NVIDIA GeForce RTX 3060 GPU作为主要的计算硬件平台。该GPU基于先进的NVIDIA Ampere架构设计拥有强大的并行处理能力和高效能的显存系统。GeForce RTX 3060配备了充足的CUDA核心以支持大规模的数据并行计算任务并且内建RT Core与Tensor Core技术为深度学习模型训练提供实时光线追踪加速以及DLSS等AI运算优化能力。 软件栈 在软件层面我们选择了PyTorch开源深度学习框架作为主要的开发工具。PyTorch以其灵活动态的计算图特性、直观易用的API以及丰富的社区资源而著称特别适合于科研探索与原型开发。通过集成对CUDA和cuDNN库的支持PyTorch能够在NVIDIA GeForce RTX 3060 GPU上充分利用硬件加速优势实现高效的深度学习模型训练与推断。 其次使用了intel官网提供的oneAPI云环境oneapi.devcloud进行模型的迁移与优化。 3.3ResNet的主要优势 ResNet的设计主要针对解决随着网络深度增加而出现的训练困难问题如梯度消失和爆炸问题这些问题使得在网络加深后准确率不再提升甚至下降。 ResNet引入了残差块Residual Block的概念一个残差块包含多个卷积层其核心思想是引入“快捷连接”或“跳跃连接”允许信息直接从输入跳过一些中间层传递到输出。通过构建由多个残差块堆叠而成的网络ResNet能够实现上百层的深度。 解决退化现象线性转换是关键目标它将数据映射到高纬空间以便于更好的完成“数据分类”。随着网络深度的不断增大所引入的激活函数也越来越多数据被映射到更加离散的空间此时已经难以让数据回到原点恒等变换。或者说神经网络将这些数据映射回原点所需要的计算量已经远远超过我们所能承受的。 退化现象让我们对非线性转换进行反思非线性转换极大的提高了数据分类能力但是随着网络的深度不断的加大我们在非线性转换方面已经走的太远竟然无法实现线性转换。显然在神经网络中增加线性转换分支成为很好的选择于是ResNet团队在ResNet模块中增加了快捷连接分支在线性转换和非线性转换之间寻求一个平衡。 3.4自定义网络架构 基础的猫狗大战问题属于二分类问题因此最后输出层输出大小为2。 model torchvision.models.resnet18(pretrainedFalse) num_features model.fc.in_features # 加载预训练的模型 model.load_state_dict(torch.load(./resnet18-f37072fd.pth)) # print(model)# 输出类别数等于数据集类别数 model.fc nn.Linear(num_features, len(train_dataset.classes)) 4.模型训练 4.1模型基本参数设置 # 设定设备GPU或CPU device torch.device(cuda if torch.cuda.is_available() else cpu) model model.to(device)# 定义损失函数和优化器 criterion nn.CrossEntropyLoss() optimizer optim.SGD(model.parameters(), lr0.001, momentum0.9) 4.2模型训练 为了提高效率首先在本机的GPU上进行模型的训练。 # 训练 # 使用预训练的ResNet18并且只修改最后一层适应我们的分类任务假设类别数为2dog和catmodel torchvision.models.resnet18(pretrainedFalse) num_features model.fc.in_features # 加载预训练的模型 model.load_state_dict(torch.load(./resnet18-f37072fd.pth)) # print(model)model.fc nn.Linear(num_features, len(train_dataset.classes)) # 输出类别数等于数据集类别数# 设定设备GPU或CPU device torch.device(cuda if torch.cuda.is_available() else cpu) model model.to(device)# 定义损失函数和优化器 criterion nn.CrossEntropyLoss() optimizer optim.SGD(model.parameters(), lr0.001, momentum0.9)# 训练轮数 num_epochs 1 i0 # 计时 start_time time.time() # 记录开始时间for epoch in range(num_epochs):model.train() # 设置模型为训练模式print(num:,epoch)for inputs, labels in train_loader:print(i, end )i1inputs, labels inputs.to(device), labels.to(device) # 将数据转移到设备上optimizer.zero_grad() # 清零梯度outputs model(inputs) # 前向传播loss criterion(outputs, labels) # 计算损失loss.backward() # 反向传播optimizer.step() # 更新权重print(fEpoch {epoch 1}/{num_epochs}, Loss: {loss.item():.4f})end_time time.time() # 记录结束时间elapsed_time end_time - start_timeprint(f轮数{epoch} 训练集用的时间为: {elapsed_time:.2f} seconds) 如果直接使用cpu 4.3训练结果 4.4保存模型 # 在训练完成后保存模型权重 torch.save(model.state_dict(), ./my_model_weights.pth)# 若要加载保存的模型权重 # 加载模型架构 model torchvision.models.resnet18(pretrainedFalse) num_features model.fc.in_features model.fc nn.Linear(num_features, len(train_dataset.classes))# 将模型加载到GPU或CPU上 device torch.device(cuda if torch.cuda.is_available() else cpu) model model.to(device)# 加载之前保存的权重 model.load_state_dict(torch.load(./my_model_weights.pth))# 保存和加载整个模型包括模型结构和权重可以这样做 # 保存整个模型 torch.save(model, ./my_model.pth)# 加载整个模型 # model torch.load(./my_model.pth, map_locationdevice) 效果演示  5.将模型移植至intel 云平台 5.1加载模型 保存模型后将其上传至云平台再加载模型至云平台上运行。 device torch.device(cuda if torch.cuda.is_available() else cpu) model torch.load(./my_model.pth, map_locationdevice) 5.3预测结果 5.4公共测试集预测结果  后续补发了公共测试集猫狗数据各500张。 6.可视化模型预测 6.1自定义数据 方式从抖音获取截图。 6.2模型尝试分类 device torch.device(cuda if torch.cuda.is_available() else cpu) model torch.load(./my_model.pth, map_locationdevice) model.eval() # 设置模型为评估模式# 定义测试图像的路径 test_image_path ./free_test/tiktokCat.jpg# 定义图像预处理的变换 transform transforms.Compose([transforms.Resize((224, 224)),transforms.ToTensor(),transforms.Normalize(mean[0.485, 0.456, 0.406], std[0.229, 0.224, 0.225]) ])# 加载测试图像 test_image Image.open(test_image_path)plt.imshow(test_image) #变换 test_image transform(test_image).unsqueeze(0) # 添加一个批次维度start_time time.time() # 记录开始时间 # 进行预测 with torch.no_grad(): # 测试阶段不需要计算梯度output model(test_image) # 概率大的解释预测结果_, predicted torch.max(output, 1)end_time time.time() # 记录结束时间 elapsed_time end_time - start_time print(f预测一张自定义图片所用的时间为: {elapsed_time:.2f} seconds)# 根据类别数量我们可以直接映射 predicted_label predicted.item()# cat: 0, dog: 1 if predicted_label 0:predicted_class_name cat else:predicted_class_name dog# print(fPredicted: {predicted_class_name}) plt.axis(off) plt.title(Predicted: predicted_class_name) plt.show() print(predicted_class_name) 6.3预测结果 7.使用OneAPI组件 Intel oneAPI 是一个跨行业、开放、基于标准的统一的编程模型旨在提供一个适用于各类计算架构的统一编程模型和应用程序接口。也就是说应用程序的开发者只需要开发一次代码就可以让代码在跨平台的异构系统上执行底层的硬件架构可以是CPU、GPU、FPGA、神经网络处理器或者其他针对不同应用的硬件加速器等等。由此可见oneAPI既提高开发效率又可以具有一定的性能可移植性。   7.1使用Intel Extension for PyTorch进行优化 简介 Intel Extension for PyTorch也称为IPEX是Intel为PyTorch深度学习框架开发的一系列优化库旨在提高在Intel架构上的性能表现特别是针对CPU和GPU如Intel Xeon和Intel Data Center GPU Flex Series。这个扩展提供了以下功能 **自动混合精度**对于支持的硬件平台可能包括自动混合精度训练功能通过动态地将部分计算从单精度浮点FP32转换到半精度浮点FP16从而减少内存占用并加速计算。 使用Intel Extension for PyTorch可以简化代码调整过程并且无需大量修改现有PyTorch代码即可获得显著性能提升。只需导入相应的库并调用特定函数或方法就可以利用这些优化特性。 # 将模型移动到CPU # print(model) device torch.device(cpu) model.to(device)model torch.load(./my_model.pth, map_locationdevice) # 重新构建优化器 optimizer optim.Adam(model.parameters(), lr0.001, weight_decay1e-4)# 使用Intel Extension for PyTorch进行优化 my_model, optimizer ipex.optimize(modelmodel, optimizeroptimizer, dtypetorch.float32) 保存优化模型 # 保存模型参数 torch.save(my_model.state_dict(), my_model_optimized.pth)# 加载模型参数 my_model.load_state_dict(torch.load(my_model_optimized.pth)) 优化结果 优化前 优化后 7.2使用 Intel® Neural Compressor 量化模型  # 将模型移动到CPUmodel.load_state_dict(torch.load(my_model_optimized.pth)) model.to(cpu) # 将模型移动到 CPU model.eval() model.eval()# 定义评估函数 def eval_func(model):with torch.no_grad():y_true []y_pred []for inputs, labels in train_loader:inputs inputs.to(cpu)labels labels.to(cpu)outputs model(inputs)_, predicted torch.max(outputs, 1) # print(predicted,labels,end )y_pred.extend(predicted.cpu().tolist())y_true.extend(labels.cpu().tolist())return accuracy_score(y_true, y_pred)# 配置量化参数 conf PostTrainingQuantConfig(backendipex, # 使用 Intel PyTorch Extensionaccuracy_criterionAccuracyCriterion(higher_is_betterTrue, criterionrelative, tolerable_loss0.01)) start_time time.time() # 记录开始时间 # 执行量化 q_model quantization.fit(model,conf,calib_dataloadertrain_loader,eval_funceval_func) end_time time.time() # 记录结束时间 elapsed_time end_time - start_time print(f量化用时: {elapsed_time:.2f} seconds) # 保存量化模型 quantized_model_path ./quantized_models if not os.path.exists(quantized_model_path):os.makedirs(quantized_model_path)q_model.save(quantized_model_path) 量化结果 量化后

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

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

相关文章

网站建设经验交流发言wordpress底部自豪采用

通信公司“内鬼” 批量提供手机卡 超6万张手机卡用来发涉赌短信 2023年10月2日,据报道2022年12月,湖北省公安厅“雷火”打击整治治安突出问题专项行动指挥部研判发现,有人在湖北随州利用虚拟拨号设备GOIP发出大量赌博短信。随州市公安局研判…

网站建设+人员+年终总结响应式网站算几个页面

1143.最长公共子序列 题目要求:给定两个字符串 text1 和 text2,返回这两个字符串的最长公共子序列的长度。 一个字符串的 子序列 是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符(也可以不删…

湖南餐饮网站建设上海建站模板厂家

给定一个 n 个点 m 条边的有向图,图中可能存在重边和自环,所有边权均为非负值。 请你求出 1 号点到 n 号点的最短距离,如果无法从 1 号点走到 n 号点,则输出 −1 。 输入格式 第一行包含整数 n 和 m 。 接下来 m 行每行包含三个…

wordpress 免费主题站交互 网站

这是目录 **一、引言****二、Spring Boot Starter基本概念****三、Spring Boot Starter的主要特点****四、Spring Boot Starter的应用场景****五、Spring Boot Starter的实现原理****六、自定义spring boot starter****为什么要创建自定义Starter?****创建自定义Spr…

小蘑菇网站建设软件要做好网络营销首先要

描述 E5071C网络分析仪提供同类产品中最高的RF性能和最快的速度,具有宽频率范围和多功能。E5071C是制造和R&D工程师评估频率范围高达20 GHz的RF元件和电路的理想解决方案。特点: 宽动态范围:测试端口的动态范围> 123 dB(典型值)快速测量速度:41毫秒全2端口…

网站seo自己怎么做网站开发者工具的网络选项

1、题目 2、工具 jd-gui:Java反汇编器。 ​python:编写自动化脚本。 3、方法 下载压缩包,解压得到一个.class文件。 ​题目已经说了是java逆向,所以使用jd-gui打开该文件。 代码如下: import java.io.PrintStream; …

如何建设网站的论文跨境电商亚马逊

预加载图片是提高用户体验的一个很好方法。图片预先加载到浏览器中,访问者便可顺利地在你的网站上冲浪,并享受到极快的加载速度。这对图片画廊及图片占据很大比例的网站来说十分有利,它保证了图片快速、无缝地发布,也可帮助用户在…

投资建设网站一站式服务门户

3.组件插槽 3-1组件插槽 注意 插槽内容可以访问到父组件的数据作用域,因为插槽内容本身就是在父组件模版中定义的 插槽内容无法访问子组件的数据.vue模版中的表达式只能访问其定义时所处的作用域,这和JavaScript的词法作用域是一致的,换言之: 父组件模版的表达式只能访问父组…

网站建设是什么职位在线阅读小说网站怎么做

exiftool:查看图片的exif信息。 pngcheck:修复被破坏的png图片 pngtools:深入研究png文件的数据 steganographic:用来提取图片中的隐藏信息 stegsolve.jar:kali中没有该工具,但是可以自己下 gimp:提供了转换各类图像文件可视化数据的功能,还可…

超级网站模板下载阿里企业邮箱手机版

STM32中断EXTI 中断的介绍中断简介中断优先级中断嵌套 STM32中断NVIC介绍作用功能如何分组 EXTI简介EXTI结构EXTI框图 AFIO介绍主要功能和作用: 中断配置步骤 一个中断时的代码初始化两个中断时的代码和错误提示 中断的介绍 中断简介 中断:在主程序运行…

建设网站公司怎么分工wordpress 标题入库

文章目录 一、前言二、自定义脚本三、自定义请求编写(Java Sampler)四、自定义函数五、小结 一、前言 掌握 JMeter 的脚本编写和执行,这基本已满足大部分的性能测试需求,但是面对各种各样的项目技术方案,有些需求是需…

邳州微网站开发成品网站短视频源码搭建免费

背景:linux服务器上有个日志目录,要通过界面访问。之前用Apache实现的,现在安全漏洞检查需要升级Apache,但是安装之路犹如西天取经,各种缺文件,各种报错,一直没搞定。然后决定用tomcat实现该功能…

一张图片做单页网站如何诊断网站为何被降权

今天让我们一起来看看五轴有些什么接地气的玩法:侧刃加工(此图非动图)相较使用刀具底刃加工,利用刀具侧刃加工可以得到更加光滑的加工表面。适用于航空航天工业中复杂型腔工件的精加工。Mastercam提供专用功能可有效防止刀具和零件型腔底部出现过切&…

全国生猪价格适合seo优化的网站制作

如题:下面是某大学数据库的一组需求,此数据库用于记录学生的成绩,这与图1.2所示数据库类似,但并不完全相同。 a. 大学要记录每个学生的姓名、学号、社会保险号、当前地址与电话、永久地址与电话、出生日期、性别、年级&#xff08…

织梦做仿站时 为何会发生本地地址跳转网站地址阿里巴巴中文站官网

很多人说java比php安全,其实这个说法很多人误解,其实安全在于程序的逻辑,代码的严谨,另外就是服务器设置的安全,关于java比php的安全一说,我不同意,java编译的话,现在可以反编译&…

网站页面做沙井做网站的公司

20240123----重返学习-原生js纯函数获取用户电脑上的文件 思路说明 通过外加点击后,通过监听这个DOM元素的change事件,在用户点击之后就能拿到用户电脑上的文件了。通过原生js来动态创建type"file"的input元素,之后给监听该元素的…

网站seo推广怎么做贵阳手机网站制作

运行了三个TSP经典用例,基本符合要求。仅仅是一份按照蚁群算法的原理写的代码,没有做任何优化。 // bigSearch.cpp : 定义控制台应用程序的入口点。 // #include<iostream> #include<math.h> #include<time.h> using namespace std; //该程序是以…

泰安网站建设 九微米杭州市建设银行网站

实际上任何Linux发行版(Centos/RedHat....)&#xff0c;其系统内核都是Linux。我们的应用都需要通过Linux内核与硬件交互。为了避免用户应用导致冲突甚至内核崩溃&#xff0c;用户应用与内核是分离的&#xff1a; 进程的寻址空间会划分为两部分&#xff1a;内核空间、用户空间。…

旅游网站设计代码html免费学ps的网站有哪些

今天推荐一个Python学习的干货。 几个印度小哥&#xff0c;在GitHub上建了一个各种Python算法的新手入门大全&#xff0c;现在标星已经超过2.6万。这个项目主要包括两部分内容&#xff1a;一是各种算法的基本原理讲解&#xff0c;二是各种算法的代码实现。 传送门在此&#x…

猪八戒网站 怎么做兼职网站建设一般的流程

100㎡-400㎡多种类型的办公户型可选 精装全包 拎包入驻 【天府锋巢直播基地】 由德商产投与无锋科技联袂打造 坐落于天府新区核心区域科学城板块 包含电商直播、娱乐直播、跨境直播 多种直播业态的全域直播基地 基地【10层】于12月初全面竣工 招&#xff5c;商 &#xff5c;火&…