自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(25)
  • 资源 (1)
  • 收藏
  • 关注

原创 TP DP PP 并行训练方法介绍

由于前向计算的 activation 需要等到对应的后向计算完成后才能释放(无论有没有使用 Checkpointing 技术),因此在流水并行下,如果想尽可能节省缓存 activation 的份数,就要尽量缩短每份 activation 保存的时间,也就是让每份 activation 都尽可能早的释放,所以要让每个 micro-batch 的数据尽可能早的完成后向计算,因此需要把后向计算的优先级提高。黄卡上放的模型的层的输入是灰色的卡上放的模型的输出。在前向计算期间,每个加速器仅存储分区边界处的输出激活。

2023-08-03 15:58:35 1259

原创 多进程和多线程数据共享

多线程之间的数据共享是通过线程共享同一个进程的内存空间来实现的,因此多个线程可以直接访问相同的内存地址,从而实现数据的共享。这使得多线程编程更加方便,因为不需要像多进程那样使用额外的机制进行进程间通信。然而,多线程共享数据也带来了潜在的问题,比如数据竞争和并发访问问题。当多个线程同时访问共享的数据时,可能会导致数据的不一致性或损坏。因此,在进行多线程编程时,需要合理地处理数据共享,避免数据竞争。

2023-08-02 11:13:37 1619 1

原创 PyTorch 中的累积梯度

使用带有梯度累积的 Batch Normalization 通常效果不佳,原因很简单,因为 BatchNorm 统计数据无法累积。更好的解决方案是使用 Group Normalization 而不是 BatchNorm。然而,如果训练一个真实的模型,结果没有这么理想,比如训练一个bert,𝐵=8,𝑁=1:没有梯度累积(累积每一步),有一个小的计算图,两次前向梯度累积的结果,可以看到梯度是严格相等的。𝐵=2,𝑁=4:梯度累积(每 4 步累积一次)

2023-08-01 15:48:28 559 1

原创 PyTorch 分布式训练和启动脚本torch.distributed.launch torchrun slurm

如果当前有4个GPU,batch_size=16,那么模型将被复制到每一个GPU上,在前向传播时,每一个gpu将分到4个batch,每个gpu独立计算依据分到的batch计算出结果的梯度,然后将梯度返回到第一个GPU上,第一个GPU再进行梯度融合、模型更新。在下一次前向传播的时候,将更新后的模型再复制给每一个GPU。1、DP在每个训练批次(batch)中,因为模型的权重都是在 一个进程上先算出来 然后再把他们分发到每个GPU上,所以就成为了一个瓶颈,而GPU使用率也通常很低。

2023-07-31 13:46:17 2625

原创 docker容器迁移

提交操作将不包括容器内安装的卷中包含的任何数据。一般来说,最好使用 Dockerfiles 以记录且可维护的方式管理图像。但是我们临时转移一下,所以先这样操作了。在一个docker配置好了python的环境,现在需要使用另一个机器,想直接把docker容器复制过去。commit成功以后,docker images 可以列出镜像,能够看到刚刚创建的镜像。默认情况下,正在提交的容器及其进程将在提交镜像时暂停。docker commit的文档。

2023-07-26 16:03:41 148 1

原创 windows fairseq 安装失败 或者运行失败

fairseq windows 安装失败

2022-07-08 00:48:24 1471 1

原创 C++力扣712. 两个字符串的最小ASCII删除和 Minimum ASCII Delete Sum for Two Strings

https://leetcode-cn.com/problems/minimum-ascii-delete-sum-for-two-strings/

2021-12-04 17:05:27 413

原创 C++实现力扣198. 打家劫舍

house robber跟基础的动态规划问题的区别是,不能选择相邻的。如下图,建立方程,用一个opt数组保存就可以。需要考虑一下数组很小的边界条件。//// Created by dd on 2021/12/3.//#include<bits/stdc++.h> //万能头文件,包含了目前C++所包含的所有头文件using namespace std;int main() { vector<int> cost = {1, 2, 3, 1}; int

2021-12-04 15:37:12 689

原创 C++实现746. 使用最小花费爬楼梯

核心思路是选还是不选。opt( i ) 表示到第i个台阶的最小花费,如果是【10, 15, 20】这个题目给出的台阶是0,1,2,求得就是opt( 3 )到达第三个台阶的最小花费。就像斐波拉契数列的计算,opt(3)需要用到opt(2) opt(1) 但是有一个选还是不选的问题上到第三个台阶可以从第二个上,也可以从第一个上,选择最小值选第二个台阶: opt(3) = 第二个台阶的花费+上到第二个台阶的花费不选第二个台阶: opt(3) = 第一个台阶的花费 + 上到第一个台阶的花费递归都是有出口

2021-12-03 21:35:48 307

原创 C++ 实现 力扣1039. 多边形三角剖分的最低得分

力扣1039. 多边形三角剖分的最低得分动态规划问题建立动态规划方程的过程:opt( l, r ) 表示从顶点i到j的最优(最低)分数ij距离为1时分数是0(这里一直没搞清楚所以方程一直建不起来)然后就是普通的动态规划的思路了比如opt(0,3)分解为以下两个式子最小值opt(0,1) +opt(1,3)+weight(013)opt(0,2) +opt(2,3)+weight(023)也就是K遍历每一个[l+1, r) 的最小值//凸多边形最优三角剖分#include<b

2021-12-03 18:22:49 610

原创 遍历二叉树的三种方法的六种实现

遍历二叉树的三种方法的六种实现有详细(相对)的注释文章目录遍历二叉树的三种方法的六种实现(1)先序(2)中序(3)后序(4)一种不同的迭代 层次遍历(1)先序力扣144.二叉树的前序遍历https://leetcode-cn.com/problems/binary-tree-preorder-traversal/递归:class Solution{public: void dfs(TreeNode *root, vector<int> &vec) {

2021-10-29 21:37:32 3349

原创 VMware安装了tools 也不能复制粘贴文字

VMware安装了tools 也不能复制粘贴文字在尝试了重新在虚拟机设置里安装tools 在选项里设置了拖拽以后,还是不能工作。后来使用了下面的命令,才安装成功。apt install -y open-vm-tools open-vm-tools-desktopreboot...

2021-09-23 10:10:39 1652 7

原创 WSL环境下 CSAPP Lab1 第一个实验的详细步骤

WSL环境下 CSAPP Lab1 第一个实验的详细步骤@TOC准备工作在课程网站可以获得本次实验的相关资料。http://csapp.cs.cmu.edu/3e/labs.htmlreadme是实验的相关说明,self-study handout是本次实验需要下载的文件,用tar xvf 文件名 来解压(Linux环境下哦)我是使用的WSL加上VScode.先打开wsl, 得到这样的几个文件。WSL下运行报错通过查看readme文档,make btest生成可执行文件,./btest就可以

2020-10-26 23:47:42 945

原创 李宏毅 机器学习2020 作业5 hw5-explainAI

本次作业做的是解释机器学习是如何识别一张图片的。用到了上一次CNN作业训练好的模型。先导入需要用得到的库,其中lime需要提前安装。我在安装的时候,conda install命令不能使用,但是使用pip命令就可以安装了。import osfrom torch.utils.data import DataLoaderimport sysimport argparseimport numpy as npfrom PIL import Imageimport matplotlib.pyplot

2020-07-03 18:35:08 2286

原创 rnn-的最简单例子 hihello程序 pytorch教程之RNN

没有看到有人解释pytorch实现的RNN模型的hello,所以我来写一个。hello是一个很简单的RNN模型的程序,功能就是喂给模型hihell, 模型会输出ihello。首先导入相关的包。import sysimport torchimport torch.nn as nnfrom torch.autograd import Variable初始化参数和input、labelstorch.manual_seed(777) # reproducibility#

2020-06-06 00:11:46 915

原创 李宏毅作业1 PM2.5预测

Homework 1: Linear Regression本次目標:由前 9 個小時的 18 個 features (包含 PM2.5)預測的 10 個小時的 PM2.5。目录Homework 1: Linear RegressionLoad 'train.csv'Preprocessing提取特征Normalize划分数据集 "train_set" and "validation_set"训...

2020-05-06 14:44:59 843

原创 李宏毅 作业2答案 详解 台大 机器学习HW2 winner or loser

Homework 2 - Classification作业代码是课程给出的答案二元分類是機器學習中最基礎的問題之一,在這份教學中,你將學會如何實作一個線性二元分類器,來根據人們的個人資料,判斷其年收入是否高於 50,000 美元。我們將以兩種方法: logistic regression 與 generative model,來達成以上目的,你可以嘗試了解、分析兩者的設計理念及差別首先载...

2020-05-06 00:05:27 1963

原创 手把手教你写CS231N作业一 KNN分类器 详细解析 作业源文件 数据集

首先官方课程给出的源文件在这里对于不方便作业源码的同学,的同学 数据集文件分享根据文件里的指导一步步编写答案就可。第一个实现KNN分类器。关于数据集的导入inline question的分析请不要做伸手党,看博客要对得起自己的良心,看了请点赞。...

2020-04-19 14:20:52 1937

原创 小白 刷题 入门 leetcode (五) 数学题目 简单 C++

leetcode ——数学题目69. x 的平方根168. Excel表列名称171. Excel表列序号204. 计数质数231. 2的幂69. x 的平方根实现 int sqrt(int x) 函数。 计算并返回 x 的平方根,其中 x 是非负整数。由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。解法一:暴力解法,从0开始遍历,判断这个数的平方是否比x大。需要考虑的...

2020-03-23 22:25:41 323

原创 小白入门 吴恩达机器学习作业(三) python实现 详细解析

本作业是实现十个逻辑回归的分类器。import numpy as npimport pandas as pdimport matplotlib.pyplot as pltfrom scipy.io import loadmatmat数据格式是Matlab的数据存储的标准格式。在python中可以使用scipy.io中的函数loadmat()读取mat文件,函数savemat保存文件...

2020-03-18 18:41:51 504

原创 # 吴恩达机器学习作业(一)python实现 详细解析

1. 单变量线性回归网上有机器学习系列课程的很多资料,但是作业代码没有详细的解释。所以本博客给出了吴恩达机器学习作业的python实现,并且对基础知识进行详细的解释首先引入需要用到的三个包import numpy as npimport pandas as pdimport matplotlib.pyplot as plt这三个包分别作用是线性代数 数据处理 画图。 pandas 是...

2020-03-17 23:08:31 742

原创 二叉树的基础知识 C++实现 最简单的二叉树 二叉排序树 BFS和DFS

实现了一颗简单的二叉树的建立和访问用递归和迭代实现BFS、DFS

2020-03-15 14:58:34 193

原创 C++ 小白入门leetcode (三)——tree 树 简单题目 详细解析

Tree C++100. 相同的树给定两个二叉树,编写一个函数来检验它们是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。一:class Solution {public: static string s; bool isSameTree(TreeNode* p, TreeNode* q) { if(p==NULL&a...

2020-03-14 23:34:23 823

原创 小白刷题入门Leetcode(二)——字符串 C++

**2 字符串**28. 实现 strStr()解法一:直接用string.fin()函数,只要把返回值不找到的情况搞定就可以。Find函数不找到返回str.npos 这里改成-1就可以。这是用语言的内置函数。接下来是别的不用内置函数的实现。class Solution {public: int strStr(string haystack, string needle) {...

2020-03-13 22:57:37 240

原创 (一)小白入门leetCode之array 简单题目 C++实现

(一)小白入门leetCode之array 简单题目 C++实现27 移除链表元素解法一指向同一个向量/数组的两个指针,一个表示结果的数组尾巴:p,另一个循环遍历整个数组:q。在这个过程种,如果q遇到了不合适的值就直接跳过,如果遇到了合适的值,就把他添加到p的后面。注意特殊的情况,数组为空或者1等;双指针法进行了许多复制操作。class Solution {public: i...

2020-03-13 00:04:47 1357 2

spring1819_assignment1.zip

斯坦福cs231n课程的源码,是没写过的作业。cs231n

2020-04-19

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除