【小白做科研( 八 )】关于Experiment

2023-10-31 08:10
文章标签 科研 小白 experiment

本文主要是介绍【小白做科研( 八 )】关于Experiment,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

    • 前言
    • 关于Pytorch
      • Mask
      • 一些学习笔记
    • 关于画图
    • 关于脚本
    • 关于可视化
      • 理解可视化的参数
    • 最后

前言

之前在忙考试周, 这个项目就搁置了一段时间, 最近考完试重新捡起来, 继续学习! 目前我们已经做完了数据处理, 复现了多篇论文的代码, 实验结果都和原论文一致, 接下来可以试一试提出自己的Idea并且做出一些实验啦~

做实验时有各种收获, 也学了几个新东西, 这一篇就打算分享一下

关于Pytorch

Mask

之前经常听到Mask这个词, 看了bert论文后知道原来是“遮住”一些词。那么除了作为预测任务外, 我们什么时候需要mask呢?

我目前遇到的情况就只有一种:即当我们不想让模型计算和padding相关的某些值时, 需要将padding的0或者是由这些0计算得到的结果mask掉

  • 比如KRNM中就会mask掉doc中padding的单词和query中任何单词交互后kernel过滤的结果, 也会mask掉query中padding的单词和doc中的任何词交互kernel过滤的结果

PyTorch中有很方便的接口tensor.masked_fill(), 具体可以参考文档, 注意可以方便地讲只包含0,1的tensor转化为布尔类型, 只需要tensor.bool()

一些学习笔记

自己一直在总结PyTorch中的一些好用的api之类的, 都在仓库里, 大家可以自行查看

关于画图

不得不说, latex是真的牛逼, tikz好好看啊, 放出来给大家康康
在这里插入图片描述

图片的源码2月会公开在github上~

关于脚本

之前一直看很多人的代码里有add_argument('--xxx')什么的, 昨天才发现原来有这么方便的命令行参数解析包----argparse!

之前我竟然是依靠sys.args来接受参数, 又蠢又不方便, 感到后悔.jpg。 这个包真的太帅了哈哈哈哈, 目前我的训练脚本都已经用这个包来解析了, 比如
在这里插入图片描述
原码在这里, 参见load_hparams函数

关于可视化

之前已经讲了用tensorboard可视化loss, 但是之前我学会了可以向里面添加模型的参数, 虽然看那个我个人认为是没什么用的, 但就很, 把下面的语句添加进train的循环里就可以了:

for name, param in model.named_parameters():writer.add_histogram(name, param, epoch * len(dataloader) + step)

来张图康康
在这里插入图片描述

理解可视化的参数

首先需要明确, 所有模型的参数都是张量(tensor), 而任何张量都可以被.view(-1)拉成一维, 这个可视化参数图其实就是参数的张量拉成一维后在不同时间点(训练步数)上的分布

纵轴我默认的是训练的step数, 相当于数字越大是训练的次数越多的; 横轴就是张量的值, 有颜色的高度就代表了当前参数张量在这个值上的分布情况, 我认为tensorboard肯定是做了平滑处理的。

理解这是一种分布后, 我们就可以顺着纵轴数值增大的方向观察模型的学习情况, 可以发现这些分布再顺着某个趋势调整, 因此模型是在学习的。

最后

这是一个关于【新闻推荐】的仓库, 包括论文整理、笔记、复现的代码等, 之后有写成框架的打算, 欢迎大家标星~

这篇关于【小白做科研( 八 )】关于Experiment的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/313984

相关文章

科研绘图系列:R语言扩展物种堆积图(Extended Stacked Barplot)

介绍 R语言的扩展物种堆积图是一种数据可视化工具,它不仅展示了物种的堆积结果,还整合了不同样本分组之间的差异性分析结果。这种图形表示方法能够直观地比较不同物种在各个分组中的显著性差异,为研究者提供了一种有效的数据解读方式。 加载R包 knitr::opts_chunk$set(warning = F, message = F)library(tidyverse)library(phyl

作为刚从事Java开发的小白,需要掌握哪些技能

作为一个刚踏入Java开发世界的小白,面对各种技术和工具,你可能会觉得有点不知所措。但是别担心,我会给你一个简单清晰的路线图,让你可以有条不紊地掌握基本技能,逐步成长为一名Java开发者。 1. 扎实的Java基础 Java的基础是你迈向高级开发的重要基石,建议从以下几个方面着手: 语法和基础概念:比如变量、条件语句、循环、方法、数组、面向对象编程(OOP)等等。这些基础如同建房子的地基,越

小白装修之全屋定制和软装

装修决策方法论:三点走下来 是则是 否则否 第一步:想清楚 哪些 是 真实需求 第二步: 了解这些需求是通过何种方式实现的 第三步:考虑 实现方式的缺点 是否能接受  全屋定制  方式:1.找全屋定制的商家  2.木工现场打柜子 组成:设计 + 板材 + 加工 + 配件 +安装 设计板块:明明有成品家具可以购买 为什么要做定制呢? 自主规划 选设计师 1.更符合我们房屋和物

科研小白成长记40——第三个五年计划

小gap期间,拼命玩和拼命休息的同时,仔细思考了下我期望的五年之后的样子,gap结束,算是目标愈发清晰起来。曾经,读博的目标是成为一名independent researcher,并且具备发至少一篇顶会的能力。而现在,希望五年后的自己,成为一名good independent researcher。当然,这里的good,根据现阶段的科研榜样,已经有了具体的metrics。 首先是随时在线的深度理解

[vue小白]npm run运行以后无法关闭

开启vue任务后,关闭git bash窗口发现端口仍然被占用,程序没有关闭 通过查询资料,大部分都说ctrl+c就可以了,但是经过实践发现并不可行,目测大部分都是复制粘贴的答案。 经过尝试,最终发现可能只能暴力关闭了 1.在cmd中输入netstat -ano查询占用端口号的pid 2. 然后在任务管理器中查询对应的任务并关闭 3. 在linux系统中更简单,直接kill -9 pid即可

反常识!科研巨头扎堆夕阳行业?A股研发之王是它?

这是邢不行第 119 期量化小讲堂的分享 作者 | 邢不行 2023年华为研发费用再创新高,高达1600亿。 多年高研发投入让华为在一众领域遥遥领先。 研发费用占全年收入23% 遍观全球,各行各业巨头也极为重视研发。 2022年全球研发投入排名 细数它们的成功史,大抵都离不开投入研发、收入增加,继而加大研发力度,收入狂飙这一路径。 高研发投入能否作为判断公司好坏的依据?

C语言新手小白详细教程(8)ASCll编码和字符串

🌏个人博客主页:意疏-CSDN博客 希望文章能够给到初学的你一些启发~ 如果觉得文章对你有帮助的话,点赞 + 关注+ 收藏支持一下笔者吧~ 阅读指南: 开篇说明ASCll编码字符串 开篇说明 本章节我们学习C语言中一个非常重要的概念 字符串。在C语言编程中,字符串是一种非常重要的数据类型。与许多其他编程语言不同,C语言本身并没有直接提供字符串类型,而是通过字

Claude的小白入门指南

要想快速上手Claude AI,其实并没有那么复杂。作为新一代的AI助手,Claude致力于为用户提供高效、无害、透明的交互体验。这篇入门指南将从Claude AI的特点、主要功能和如何实际操作等几个方面为大家做一个详细的介绍。 Claude AI是什么? Claude是由Anthropic开发的一款多功能AI助手,它的核心特点是具备高效的自然语言处理能力,专注于提供帮助、无害且诚

小白服务器编程指北(1)——从零搭建Django服务器(Centos7+Nginx+uWSGI)

目录 前言CentOS配置网络连接配置YUM 源ifconfig: command not found安装vim安装gcc/g++ Python配置Python3 update安装Python3 开发套件 PostgreSQL数据库安装psycopg2 Redis数据库安装Django 及其他Python库配置Postgresql使用Postgresql roleCreate new Pos

小白入门LLM大模型最牛X教程------上交《动手学大模型应用开发》!

本项目是一个面向小白开发者的大模型应用开发教程,旨在结合个人知识库助手项目,通过一个课程完成大模型开发的重点入门,涵盖了大模型应用开发的方方面面,主要包括: 教程一共有七章内容: 《动手学大模型》是上海交大 更新的系列编程实践教程。从已经跟新的内容来看,侧重安全垂直方向。命名是向他们的学长李沐的《动手学深度学习》课程致敬。 感受下大纲、课件和教程风格: 微调与部署 提示学习与思维