记一次天池参赛总结

第一次参加这类的算法比赛,记录一下自己遇到的一些点,做个总结。
比较浅显的一些记录,第一次的经验之谈,适合首次参加可能容易遇到的问题

文章目录

    • 平台
    • 代码
    • tips
      • 整理
    • 加载权重文件
    • autopel下载上传

平台

使用的autodl平台

  1. 下载大量数据:可以使用百度网盘的方式,不过百度网盘限速在这里同样适用,所以请开会员微笑脸
  2. 拷贝机器:代码部分可以保存为镜像,数据部分,最好租用一个地区的实例,可以同地区传输,比下载快

代码

  1. config文件
    可以将程序的一些配置写进配置文件
    例如:数据类型dtype、设备cuda or cpu、数据路径、log路径、checkpoints路径、batch大小、最大训练次数等。
import torch as tclass config(object):seed = 1024dtype = t.float32device = "cuda:0" if t.cuda.is_available() else "cpu"data_dir = "/root/autodl-tmp/"log_dir = "./logs"checkpoints_dir = "./save_checkpoint"model_name = ""pretrain_model = ""  # pretrain for fine-tune# dataset confignum_step = 20  # 1 for 6-hours, 4 for 1-day, and 20 for 5-daystest_names = ["msl"]  # ["t2m", "u10", "v10", "msl", "tp"]ini_forecast_timestep =  "12" # ["00", "12", "00 & 12", "all"] # train configtrain_batch_size = 16num_workers = 16train_max_epochs = 50loss_log_iters = 100img_log_iters = 500model_save_fre = 5# valid and test configval_batch_size = 16test_batch_size = 1conf = config()
  1. 基础设置
    1. 将随机数生成器的种子设置为固定值
    t.manual_seed(seed)if t.cuda.is_available():t.cuda.manual_seed(seed)t.cuda.manual_seed_all(seed)
2. 使得cuDNN来衡量自己库里面的多个卷积算法的速度,然后选择其中最快的那个卷积算法,启动算法的前期会比较慢,但算法跑起来以后会非常快
t.backends.cudnn.benchmark = False
3. 令卷积算法确定,设置随机数seed一定,可保证每次运行网络相同输入得到输出相同
t.backends.cudnn.deterministic = True
4. Tensorboard使用
from torch.utils.tensorboard import SummaryWriter
writer = SummaryWriter(log_dir=log_dir) # 设置tensorboard的找文件的文件夹
writer.add_scalar("Train/Losses/loss", loss.item(), iters)
def img_summary(img, iters, name_scope, writer):batch_size = img.size()[0]for i in range(batch_size):writer.add_images(name_scope + "/Img" + str(i + 1), img[i], iters)
utils.img_summary(output,#写入的二维函数iters,"Train/Imgs/{}/Prediction".format(conf.test_names[0].upper()),writer,)writer.close()
5. 函数使用,导入模块,函数名字即可调用
getattr(unet, conf.model_name)(conf)
6. 加载数据dataloader
    train_dataset = dataset.dataset_name(conf, train=True, test=False)train_dataloader = DataLoader(train_dataset,conf.train_batch_size,shuffle=True,#是否打乱,train打乱、valid不乱num_workers=conf.num_workers,#几个线程一起跑,考验cpupin_memory=True,#cpu会报错,gpu下物理导入,更快)
  1. dataset类
class dataset(Dataset):def __init__(self, conf, train=True, test=False):self.data_dir = conf.data_dirself.dtype = conf.dtypeself.num_step = conf.num_stepself.input_names = xxxself.test_names = xxxself.train = trainself.test = testself.train_folder = "train"self.test_folder = "testA"self.num_data = 0self.ds = []self.load_dataset()def load_dataset(self):if self.train:······else:if not self.test:······else:······def __getitem__(self, idx):if not self.test:assert idx < self.num_data······else:assert idx < self.num_data······def __len__(self):return self.num_data

tips

整理

权重:每次训练的最好的权重进行保存,删除多余没用的
训练代码:对于不同模型的训练代码略有不同,可以创建多个train.py
数据代码:对于不同加载数据的代码,也可以写多个dataset类
模型代码:对于不同模型的代码,写多个model类

加载权重文件

对于加载权重文件,不应该写入dataset里面,因为pin=True,会让模型用cpu加载,更快,但是权重文件一般要cuda,所以放在model__init__里面

autopel下载上传

打包:

zip -r xx.zip 文件夹/ 

首先将数据打包,小数据可以右键下载,但是不太稳定,可以在autopel里面保存到网盘,稳定下载,也适合不同实例之间的传输

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

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

相关文章

基于单片机的空气质量检测系统

欢迎大家点赞、收藏、关注、评论啦 &#xff0c;由于篇幅有限&#xff0c;只展示了部分核心代码。 技术交流认准下方 CSDN 官方提供的联系方式 文章目录 概要 一、主要内容二、系统方案设计2.1 系统方案设计2.2 主控制器模块选择 三、 系统软件设计4.1 程序结构分析4.2系统程序…

小红书平台用户数据分析与可视化

管理器、网页下载器、网页解析器、输出管理器这四个模块去搭建一个爬虫框架&#xff0c;将爬虫流程统一化&#xff0c;将通用的功能进行抽象&#xff0c;减少重复工作。要求实现的爬虫框架可以进行分布式爬取&#xff0c;解决爬虫的统一调度和统一去重&#xff0c;以及存储问题…

[激光原理与应用-72]:PLC架构与工作原理

目录 一、PLC简介 1.1 概述 1.2 基本组成 1.3 常见的PLC品牌比较 二、PLC程序执行原理 2.1 PLC有操作系统吗&#xff1f; 2.2 PLC程序执行 2.3 PLC编程语言 2.4 PLC编程过程 三、PLC编程工具 3.1 编程工具 四、PLC与工控机协同 4.1 PLC需要配置工控机吗&#xff1…

SpringBoot / Vue 对SSE的基本使用

一、SSE是什么&#xff1f; SSE技术是基于单工通信模式&#xff0c;只是单纯的客户端向服务端发送请求&#xff0c;服务端不会主动发送给客户端。服务端采取的策略是抓住这个请求不放&#xff0c;等数据更新的时候才返回给客户端&#xff0c;当客户端接收到消息后&#xff0c;再…

MATLAB算法实战应用案例精讲-【图像处理】相机标定(补充篇)

目录 前言 知识储备 摄像头基础知识 一、摄像头结构和工作原理 二、相关参

postman使用POST,却收到的是GET请求

现象&#xff1a; 可以看到我们postman发出的确实是post请求&#xff0c;message却报错这个接口不支持get请求&#xff0c;说明服务器实际上收到的是一个get请求。 产生原因分析 如果我们访问的是线上的接口&#xff0c;线上的nginx一般都会对http访问做一个302重定向&#xf…

生成的二维码如何解析出原来的地址?

生成的二维码如何解析出原来的地址&#xff1f; 随着移动互联网的发展&#xff0c;二维码作为一种快速获取信息的方式&#xff0c;在我们的生活中越来越常见。而PHP作为Web语言之一&#xff0c;也有着二维码解码的功能。 PHP中有着众多的二维码解码库&#xff0c;例如&#x…

k8s 集群部署

目录 1. 集群环境初始化 2. 所有节点安装kubeadm 3. 拉取集群所需镜像 4. 集群初始化 5. 安装flannel网络插件 6. 扩容节点 7. 设置kubectl命令补齐 官网&#xff1a; https://v1-23.docs.kubernetes.io/zh/docs/setup/production-environment/tools/kubeadm/install-kubeadm/ …

git的使用——如何创建.gitignore文件,排除target、.idea文件夹的提交

前言 git作为开发人员必备的技能&#xff0c;需要熟练掌握&#xff0c;本篇博客记录一些git使用的场景&#xff0c;结合具体问题进行git使用的记录。以gitee的使用为例。 本篇博客介绍如何创建.gitignore文件&#xff0c;排除一些文件夹的提交&#xff0c;比如排除target、.i…

2023前端面试整理

1. 介绍一下最近参与的项目,负责那些业务,在开发过程中遇到过问题吗&#xff1f;最后是咋样处理的&#xff1f; 之前负责过大小十几个项目&#xff0c;负责过浙里办的整套上架流程&#xff0c;负责过数据大屏统计&#xff0c;后台管理系统文书生成表单生成等&#xff0c;浙政钉…

树莓派4B安装ffmpeg

环境&#xff1a; piraspberrypi:~/x264 $ lsb_release -aNo LSB modules are available.Distributor ID: RaspbianDescription: Raspbian GNU/Linux 10 (buster)Release: 10Codename: buster 装H264 git clone --depth 1 https://code.videolan.org/video…

c++拷贝构造与赋值运算符重载

目录 目录&#xff1a; 1&#xff1a;拷贝构造 2&#xff1a;赋值运算符重载 前言&#xff1a;在上一章我们已经学习过了&#xff0c;构造与析构这两个默认成员函数了&#xff0c;接下来让我们一起来学习另外两个重要的默认成员函数。 首先让我们来讲一下默认成员函数这个概念…

【ARM Trace32(劳特巴赫) 使用介绍 2 -- Trace32 cmm 脚本基本语法及常用命令】

文章目录 Trace32 CMM 概述1.1 Trace32 系统命令 SYStem1.1.1 Trace32 SYStem.CONFIG1.1.2 SYStem.MemAccess1.1.3 SYStem.Mode1.1.3.1 TRST-Resets the JTAG TAP controller and the CPU internal debug logic1.1.3.2 SRST- Resets the CPU core and peripherals 1.2 Trace32 …

Azure - 自动化机器学习AutoML Azure使用详解

目录 一、AutoML是如何工作的&#xff1f;二、何时考虑AutoML&#xff1f;三、AutoML助力训练与集成过程四、实战案例五、总结 自动化机器学习&#xff0c;简称为AutoML&#xff0c;旨在将机器学习模型的开发中繁琐且重复的任务自动化。这使得数据科学家、分析师以及开发人员能…

ThinkPad电脑HDMI接口失灵如何解决?

ThinkPad电脑HDMI接口失灵如何解决&#xff1f; 如果平时正常使用的外接显示器&#xff0c;某天突然无法使用了&#xff0c;重新插拔依然无信号的话&#xff0c;可以打开系统的设备管理器&#xff08;快捷键winx&#xff09;&#xff0c;首先看一下监视器的识别情况&#xff0c…

Vue3.0组件的生命周期

每个Vue 组件实例在创建时都需要经历一系列的初始化步骤&#xff0c;比如设置好数据侦听&#xff0c;编译模板&#xff0c;挂载实例到DOM&#xff0c;以及在数据改变时更新 DOM。在此过程中&#xff0c;它也会运行被称为生命周期钩子的函数&#xff0c;让开发者有机会在特定阶段…

Istio 实战

文章目录 Istio流量管理分享会【1】什么是istio?【2】istio 可以干什么?【3】业务中的痛点?【4】istio 高级流量管理5.1 istio 组件介绍与原理5.2 sidercar何时注入?如何控制是否注入?5.3 查看sidecar 容器插入的容器中的iptablesDestination RuleVirtual ServiceGateways…

使用es实现轻量级分布式锁

文章目录 [toc] 1.前言2.实现3.总结 1.前言 一般来说&#xff0c;实现分布式锁的方式有哪几种&#xff1f; 一&#xff1a;Redisson实现 二&#xff1a;ZK实现 这两种实现网上的实现是千篇一律&#xff0c;在本文就不做过多的讲解了 其它方式好像没有了&#xff0c;真的是这…

Camtasia Mac 2023版怎么给视频加字幕

在视频制作过程中&#xff0c;字幕和马赛克是两项非常常用的编辑功能&#xff0c;添加字幕可以提高观众的观看体验&#xff0c;添加马赛克可以保护视频创作者不想公开的画面内容。Camtasia作为一款知名的视频制作软件&#xff0c;在具备基本的录制和视频编辑功能的同时&#xf…

Windows11搭建kafka-python环境

文章目录 安装软件javazookeeperkafka命令行调试环境python-kafka环境参数解释名词解释定义基础架构同步发送、异步发送消息队列的两种模式消费者与消费组幂等性文件清理策略kafka消费模式offset作用kafka消费顺序如何保证参考文献安装软件 java 下载jdk,配置环境变量JAVA_H…