自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(141)
  • 资源 (21)
  • 收藏
  • 关注

原创 huggingface镜像源

【代码】huggingface镜像源。

2024-05-29 18:59:20 124

原创 Linux查看某个用户使用总内存脚本

将 替换为你要上传的 Docker 镜像的ID, 替换为你在 Docker Hub 上的用户名, 替换为你要上传的镜像名称, 替换为镜像的标签。如果没有,请前往 Docker Hub (https://hub.docker.com/) 注册一个账号。在 Docker Hub 网站上登录你的账号,你应该能够在你的仓库列表中看到刚刚上传的镜像。这些步骤将会将你的 Docker 镜像上传到 Docker Hub 以供其他人访问和使用。

2024-05-27 17:57:51 234

原创 std::shared_ptr 自定义deleter

bm_image需要定制化的deleter,可以通过reset和lambda表达式配合实现。

2024-05-27 17:47:41 111

原创 Ubuntu界面在MacOS可视化、显示ubuntu的GUI到本地

本文提供两种方法实现在MacOS上的Ubuntu GUI(图形界面)显示。方法一功能更加强大,但是界面相对卡顿一些,适合检查性操作,比如刚入门的小白还不太习惯通过命令终端去执行操作,就可以用这种方法作为辅助。方法二更加轻量,可以实现服务器端单个应用的GUI到主机上的映射(比如打开jupyter notebook、pycharm),对GUI界面操作时很流畅。

2024-05-27 17:35:38 317

原创 Ubuntu 20.04 上安装和配置 VNC

请确保以具有 sudo 权限的用户身份登录。建议使用具有 sudo 权限的普通用户进行处理,而不是直接使用 root 用户。创建用户并加入 sudoers 可自行百度。

2024-05-27 17:31:08 1481

原创 设置非root账号不用sudo直接执行docker命令

环境信息操作系统:Ubuntu 20.04 LTS 桌面版。

2024-05-27 10:28:37 148

原创 Git本地仓库与远程仓库关联

或命令的含义是,推送master分支到远程origin仓库master分支,并且建立本地分支master的upstream为origin/master。(关于git push更详细的解释,请参考第04节)设置本地分支br01的upstream为origin/br01-remote。或push的时候直接设置。

2024-05-24 16:47:24 282

原创 Docker容器镜像打成tar包

在现在容器上保存镜像进行打包,在另一台服务上使用首先查看下现有要打tar包的容器。

2024-05-24 16:41:50 1285

原创 docker image上传至docker hub

将 <镜像ID> 替换为你要上传的 Docker 镜像的ID,<你的用户名> 替换为你在 Docker Hub 上的用户名,<镜像名称> 替换为你要上传的镜像名称,<标签> 替换为镜像的标签。如果没有,请前往 Docker Hub (https://hub.docker.com/) 注册一个账号。在 Docker Hub 网站上登录你的账号,你应该能够在你的仓库列表中看到刚刚上传的镜像。这些步骤将会将你的 Docker 镜像上传到 Docker Hub 以供其他人访问和使用。

2024-05-24 16:38:49 182

原创 通过ssh在本地打开远程服务器的网页

在远程服务器使用jupyter notebook或者tensorboard等时,在本地打开服务器端的网页的方式有很多比如可以使用MobaXterm工具等,此方法可参考https://blog.csdn.net/cc__cc__/article/details/108060618?其中8888是本地端口号,8008是服务器端端口号,可根据实际情况进行调整。

2024-05-24 16:36:31 849

原创 Mac OS制作Ubuntu的U盘启动盘

地址为:https://ubuntu.com/download/desktop。

2024-05-24 16:33:49 402

原创 Linux 配置SSH免密登录(SSH互信)

有时候两台或多台主机之间我们希望可以进行免密登录,其实SSH有提供这样的功能,只需三步。首先在SSH服务端配置允许公钥私钥配对认证,然后在客户端生成公钥,最后将客户端的公钥上传到服务端。这样就可以从客户端免密登录服务端特定的用户了。

2024-05-24 16:31:48 359

原创 Linux安装zsh并配置oh-my-zsh

Linux安装zsh并配置oh-my-zsh

2024-05-24 16:28:16 426

原创 Valgrind的安装与使用

Valgrind 提供了多种工具和选项,用于检测不同类型的问题,如内存泄漏、使用未初始化的变量等。Valgrind 是一款用于检测内存错误和性能问题的工具。请注意,Valgrind 可能无法检测所有问题,但它是一款强大的工具,对于查找和解决内存问题非常有帮助。注意:Valgrind 在检测内存问题时会导致程序运行变慢,因此不适合在生产环境中长时间运行。要了解 Valgrind 的更多用法和选项,请查阅 Valgrind 官方文档或在线资源。Valgrind 会执行你的程序,并输出内存错误和泄漏的信息。

2024-05-24 15:56:23 202

原创 C++对象切片错误

C++对象切片错误是指在使用继承关系的类时,将派生类对象赋值给基类对象,导致派生类的特有成员被切掉,只保留了基类的部分成员。这通常是因为使用了对象的引用或指针来存储派生类对象,但将其赋值给基类对象的时候发生的错误。

2024-05-24 15:37:05 173

原创 C++使用范围for语句处理多维数组

这样得到的 row 的类型就是 int * ,显然内层的循环就不合法了,编译器将试图在一个 int * 内遍历,这显然和程序的初衷相去甚远。这样得到的 row 的类型就是 int * ,显然内层的循环就不合法了,编译器将试图在一个 int * 内遍历,这显然和程序的初衷相去甚远。第二个 for 循环遍历那些4元素数组中的某一个,因此col的类型是整数的引用。举一个例子,考虑如下的循环∶。第一个for循环遍历ia的所有元素,这些元素是大小为 4 的数组,因此 row的类型就应该是含有4个整数的数组的引用。

2024-05-24 14:49:12 367

原创 C++ 使用异常的优缺点和noexcept的作用

在C++中是否使用异常是一个有争议的话题,使用异常有一些优点,但也有一些缺点。

2024-05-24 14:33:48 290

原创 C++中Lambda表达式的使用场景

总的来说,Lambda表达式在C++中有许多实用的使用场景,它可以让代码更加简洁、灵活,并提高开发效率。但也需要注意适度使用,避免在Lambda内部写过于复杂的逻辑,以保持代码的可读性和维护性。

2024-05-24 13:15:34 272

原创 C++中const、引用类型初始化

如果成员是const、引用,或者属于某种未提供默认构造函数的类类型,我们必须通过构造函数初始值列表为这些成员提供初值。类成员的初始化可以通过构造函数的参数列表初始化,也可以在构造函数中赋值完成初始化。

2024-05-24 09:59:23 173

原创 C++ std::lock_guard

/ 构造时自动加锁// 构造时自动加锁 std :: lock_guard < std :: mutex >(kMutex);// 离开局部作用域,析构函数自动完成解锁功能 }// 构造时自动加锁 std :: lock_guard < std :: mutex >(kMutex);// 离开局部作用域,析构函数自动完成解锁功能 }// 构造时自动加锁 std :: lock_guard < std :: mutex >(kMutex);

2024-05-24 09:44:12 970

原创 C++ Lambda表达式

其中,capture list 是捕获列表,用于指定需要在 lambda 表达式中使用的外部变量。Lambda 表达式非常灵活,可以用于各种场景,例如在 STL 算法中作为谓词(predicate)、用于多线程编程中、在算法中进行数据处理等等。在上面的示例中,我们创建了一个 lambda 表达式,它捕获了外部变量 x 和 y,并计算它们的和。Lambda 表达式是 C++11 中引入的一种用于创建匿名函数的特殊语法。它允许我们在代码中定义一个临时的、无名的函数对象,而无需显式定义一个函数。

2024-05-24 09:40:28 263

原创 替换github某个仓库的email

更改GitHub仓库中提交的电子邮件地址可以通过两种主要方式来实现:更改未来提交的用户电子邮件配置,以及重写历史中的提交以更改旧提交的电子邮件地址。请注意,更改历史提交的电子邮件地址会改写仓库的历史,这可能会对其他贡献者造成影响,因此在执行这些操作之前,请确保与团队成员进行了充分的沟通。

2024-05-09 11:33:38 491

原创 torch中tensor的in-place操作

在PyTorch中,张量(tensor)的行为与numpy数组类似,但也有它们自己的特点。下面是对您提供的两段代码的解释:对于 Y = Y + X:这里发生的是一个非就地(out-of-place)操作。Y + X 创建了一个新的张量来存储加法的结果,然后这个新的张量被赋值给变量Y。因此,Y的id会改变,因为它现在引用了一个新的对象。所以,id(Y) == before 的结果将是 False。对于 X += Y 或者 X.add_(Y):这里发生的是一个就地(in-place)操作。

2024-04-29 10:36:10 195

原创 【论文阅读】OpsEval

信息技术(IT)运营(Ops),特别是用于IT运营的人工智能(AlOps),是保持现有信息系统有序和稳定运行的保证。根据Gartner的预测,将人工智能技术用于自动化IT运营已成为一种新趋势。大型语言模型(LLM)在NLP相关任务中表现出非凡的能力,在AlOps领域显示出巨大的潜力,例如在故障的根本原因分析、操作和维护脚本的生成以及警报信息的总结等方面。尽管如此,当前LLM在运营任务中的表现尚未确定。需要一个全面的基准来优化为Ops(OpsLLM)量身定制的LLM。

2024-03-10 13:55:44 1163

原创 Multi-Head Attention详解

文中大部分内容以及图片来自:https://medium.com/@hunter-j-phillips/multi-head-attention-7924371d477a当使用 multi-head attention 时,通常d_key = d_value =(d_model / n_heads),其中n_heads是头的数量。研究人员称,通常使用平行注意层代替全尺寸性,因为该模型能够“关注来自不同位置的不同表示子空间的信息”。

2024-02-29 21:49:22 2163

原创 Transformer之Residuals & Decoder

我们需要提到的编码器架构中的一个细节是,每个编码器中的每个子层(self-attention,,ffnn)周围都有一个残余连接,然后是 layer-normalization 步骤。如果我们要可视化向量和与 self attention 相关的 layer-norm 运算,它看起来是这样的这也适用于解码器的子层。如果我们考虑一个由2个堆叠的编码器和解码器组成的Transformer,它看起来就像这样。

2024-02-29 12:15:54 1175

原创 Transformer之Positional Encoding

正如我们到目前为止所描述的那样,模型中缺少的一件事是解释输入序列中单词顺序的方法。为了解决这个问题,transformer 在每个输入嵌入中添加一个矢量。这些向量遵循模型学习的特定模式,这有助于它确定每个单词的位置,或序列中不同单词之间的距离。这里的直觉是,将这些值添加到嵌入中,一旦它们投射到Q/K/V矢量中,并在点积 attention 期间,嵌入向量之间会提供有意义的距离。如果我们假设嵌入的维数为4,那么实际的位置编码将是这样的这个模式会是什么样子呢?

2024-02-29 11:18:18 438

原创 Transformer之multi-head

当我们对“it”这个词进行编码时,一个注意力头主要关注“animal”,而另一个注意力头主要关注“tired”——从某种意义上说,模型对“it”这个词的表征融合了“动物”和“累”的一些表征。我意识到这是相当多的矩阵。既然我们已经触及了注意头,让我们回顾一下之前的例子,看看当我们在例句中对单词 “it” 进行编码时,不同的注意头集中在哪里。如果我们做同样的 self-attention 计算,只是8次不同的权重矩阵,我们最终会得到8个不同的Z矩阵。我们连接矩阵,然后将它们乘以一个附加的权重矩阵WO。

2024-02-29 10:50:14 504

原创 Transformer之self-attention

注意力是一个有助于提高神经机器翻译应用程序性能的概念。在这篇文章中,我们将看看Transformer,一个使用注意力来提高这些模型训练速度的模型。Transformer在特定任务中优于谷歌神经机器翻译模型。在这篇文章中,我们将尝试简化一些内容,并逐一介绍概念,希望能够让没有深入了解主题的人更容易理解。

2024-02-28 23:56:53 898

原创 用GGUF和Llama.cpp量化Llama模型

GGML是一个专注于机器学习的C语言库。它是由Georgi Gerganov创建的,这是GG的首字母缩写。这个库不仅提供了机器学习的基本元素,如张量,而且还提供了一种独特的二进制格式来分发llm。该格式最近更改为GGUF。这种新格式被设计为可扩展的,因此新特性不会破坏与现有模型的兼容性。它还将所有元数据集中在一个文件中,例如特殊 tokens、RoPE缩放参数等。简而言之,它解决了历史上的一些痛点,而且应该经得起未来的考验。欲了解更多信息,您可以在此地址阅读规范。

2024-02-26 14:26:00 3226 1

原创 使用GPTQ进行4位LLM量化

当一些权重被中间更新推到网格之外时,这种效果可能会恶化。一个简单的启发式应用来防止这种情况:异常值一出现就被量化。这个过程可能需要大量的计算,特别是对于LLMs。为了解决这个问题,OBQ方法使用了一种技巧,避免在每次简化权重时重新进行整个计算。量化权重后,它通过删除与该权重相关的行和列(使用高斯消去)来调整计算中使用的矩阵(Hessian矩阵)。该方法还采用向量化的方法,一次处理多行权矩阵。尽管OBQ的效率很高,但随着权值矩阵的增大,OBQ的计算时间也会显著增加。

2024-02-26 12:17:31 1953

原创 LLM权重量化

我们可以计算尺度是255/(3.2+3.0) = 41.13,zero point为 -round(41.13•-3.0)-128 = 123- 128 = -5,因此我们之前的0.1权重将被量化为round(41.13 * 0.1 - 5)= -1。然而,它们的局限性,特别是在处理异常值时,导致了LLM.int8(),这种技术也保留了模型的性能。通常,模型的大小是通过将**参数的数量(大小)乘以这些值的精度(数据类型)**来计算的。现在我们的模型已经被量化了,我们想要检查这个过程的影响。

2024-02-25 01:21:13 1050

原创 7.3 CONSTANT MEMORY AND CACHING

因此,当warp中的所有线程访问相同的恒定内存变量时,就像M的情况一样,缓存可以提供大量的带宽来满足线程的数据需求。为了减轻内存瓶颈的影响,现代处理器通常使用片上缓存存储器或缓存,以减少需要从主存储器(DRAM)访问的变量数量,如图7.9所示。更好的是,所有线程都以相同的顺序访问M元素,从M[0]开始,并通过图7.6.中for循环的迭代一次移动一个元素。请注意,这是一个特殊的内存复制函数,它通知CUDA运行时,在内核执行期间,复制到常量内存的数据不会更改。然后,变量的值将从缓存中提供,无需访问DRAM。

2024-01-09 17:47:36 373

原创 7.2 1D PARALLEL CONVOLUTION—A BASIC ALGORITHM

为了简单起见,我们假设Mask_Width是一个奇数,卷积是对称的,即Mask_Width是2*n + 1,其中n是整数。因此,在if声明中,它们都将是一些不同的决定。计算P[0]的线程将跳过大约一半的乘法累积语句,而计算P[1]的那个会少跳过一次,以及以此为由。我们假设1D卷积内核收到五个参数:指向输入数组N的指针,指向输入掩码M的指针,指向输出数组P的指针,掩码Mask_Width的大小,以及输入和输出数组宽度的大小。

2024-01-09 17:01:10 395

原创 Parallel patterns: convolution —— An introduction to stencil computation

应该清楚的是,P[0]的计算将涉及两个缺失的N个元素,在本例中,这两个元素都将被假定为0。我们使用5元素掩码M的事实意味着每个P元素是由对应位置的N个元素的加权和生成的,左边是两个N个元素,右边是两个N个元素。例如, P[2] 的值生成为 N[0](即 N[2-2])到N[4](即N[2+2])的加权和。在图7.1中,P[i] 的计算可以看作是从 N[i-2] 开始的N子数组和M数组之间的内积。也就是说,P[3] 的值是N[1](即N[3-2])通过N[5](即N[3 + 2])的加权和。

2024-01-09 16:29:25 1059

原创 CUDA并行计算对精度的影响

并行归约(Parallel Reduction): 在并行计算中,例如在进行归约操作时,如果不小心处理浮点数相加可能导致累积误差。在一些科学计算应用中,数值精度是非常关键的,因此在选择并行算法和优化技术时需要仔细考虑。在这个简单的向量相加的CUDA内核中,如果输入数组 a 和 b 中包含极小或极大的浮点数,那么在并行计算中可能会由于浮点数舍入误差而引入一些微小的差异。数据依赖性: 并行计算中,如果存在数据依赖性,即某个计算的结果依赖于其他计算的结果,可能会导致数值不稳定性。虽然这在串行计算中也存在,但。

2024-01-09 15:24:17 535

原创 5.5 THREAD GRANULARITY

如图5.17所示,相邻 tile 中两个P元素的计算使用相同的 M 行。使用原始的 tile 算法,相同的M行被分配给生成这两个P tile 的两个块冗余加载。有时,在每个线程中投入更多工作并使用更少的线程是有利的。图5.17说明了矩阵乘法的这种机会。图5.6中的tile算法,使用一个线程来计算输出P矩阵的一个元素。正如我们在上一节中讨论的,可以在每个SM上运行的块数量可能会减少。在实践中,组合多达四个相邻的水平块来计算相邻的水平tile,显著提高了大型(2048x2048或更多)矩阵乘法的性能。

2024-01-09 14:07:39 376

原创 5.4 DYNAMIC PARTITIONING OF RESOURCES

如果每个线程块包含256个线程,则对1536个线程插槽进行分区并分配给6个线程块。他们可以执行许多线程块,每个线程很少,也可以执行几个线程块,每个线程有很多线程。如果每个线程块由512个线程组成,则1536个线程插槽被分区并分配给三个块。阅读器参考CUDA占用计算器[NVIDIA],这是一个可下载的Excel工作表,根据内核对资源的使用情况,计算每个SM上运行的线程的实际数。通过在块之间动态分区寄存器,如果需要很少的寄存器,SM可以容纳更多的块,如果需要更多的寄存器,则可以容纳更多的块。

2024-01-09 13:57:25 377

原创 5.3 WARPS AND SIMD HARDWARE

我们现在把注意力转向线程执行中可能限制性能的方面。回想一下,启动CUDA内核会生成一个线程网格,该网格被组织为两级层次结构。在顶层,网格由一维、二维或三维块阵列组成。在底层,每个块依次由一维、二维或三维线程阵列组成。在第3章,可扩展并行执行中,我们看到块可以以任何相对的顺序执行,这允许跨不同设备的透明可扩展性。然而,我们没有过多说明每个块内线程的执行时间。从概念上讲,人们应该假设块中的线程可以相互之间以任何顺序执行。在具有相位的算法中,每当我们想确保所有线程在开始下一阶段之前都已完成执行的通用阶段时,就应

2024-01-09 12:50:14 841

原创 5.2 MORE ON MEMORY PARALLELISM

例如,如果有更多的元素,M[16]和M[17]将存储在通道0的0bank中,M[18]和M[19]将存储在通道1的0 bank中,等等。通道和bank的地址是,阵列的前八字节(M[0]和M[1])存储在通道0的bank0中,接下来的八字节(M[2]和M[3])存储在通道1的bank0中,接下来的八字节(M[4]和M[5])存储在通道2的bank0中,接下来的八字节(M[6]和M[7])存储在通道3的bank0中。也就是说,在进入通道1的0bank之前,我们只分配足够的元素来充分利用通道0的DRAM突发。

2024-01-09 11:29:35 768

基于 DDPG 智能体的四足机器人运动控制

MATLAB强化学习实战(十四) 基于 DDPG 智能体的四足机器人运动控制 https://blog.csdn.net/wangyifan123456zz/article/details/109679138#comments_16710443

2021-05-30

TrainMultipleAgentsToPerformCollaborativeTaskExample.zip

MATLAB强化学习实战(八) 训练多个智能体执行协作任务 代码

2021-05-25

TrainMultipleAgentsForAreaCoverageExample.zip

MATLAB强化学习实战(九) 多智能体的区域探索 源码

2021-05-06

TrainBipedRobotToWalkUsingReinforcementLearningAgentsExample.zip

MATLAB强化学习实战(十三) 使用强化学习智能体训练Biped机器人行走 代码

2021-02-21

TrainMultipleAgentsForPathFollowingControlExample.zip

多智能体的路径跟随控制matlab代码

2021-02-21

tensorflowlite 图像分类 安卓app

tensorflowlite 图像分类 安卓app 可直接安装 实时分类

2020-12-25

tensorflowlite 实例分割 安卓app

tensorflowlite 实例分割 安卓app 可直接安装

2020-12-25

tensorflow lite 目标检测 安卓app

tensorflow lite 目标检测 安卓app 使用github源码导出 可在安卓手机安卓 实时目标检测

2020-12-25

TrainMultipleAgentsForPathFollowingControlExample.zip

多智能体路径跟踪MATLAB 博文:https://blog.csdn.net/wangyifan123456zz/article/details/109633715

2020-12-24

使用Deep Network Designer创建智能体并使用图像观察进行训练--博客模型

MATLAB强化学习实战(六) 使用Deep Network Designer创建智能体并使用图像观察进行训练 https://blog.csdn.net/wangyifan123456zz/article/details/109579918 这篇博客的模型文件 需要的话可以下载

2020-11-09

Microsoft.PowerShell_profile.ps1

将脚本文件放入默认路径下 以管理员权限打开powershell 开始自动安装 powershell美化

2020-11-06

强化学习python代码-notebook

强化学习python代码,notebook 各个强化学习热门代码实现 q-learning sarsa dqn dpg 算法详解 仅供参考 ~~~~

2020-10-26

一种用于水下机器人分布式编队控制的自适应自组织神经网络方法pdf

一种用于水下机器人分布式编队控制的自适应自组织神经网络方法 论文pdf下载 ----------------------侵删----------------------- ~~~ ~~~

2020-10-23

YouCompleteMe.tar.xz YCM 完整包

YouCompleteMe 完整安装包 -------------YCM-------------------- ~~~~~~~~~~下载~~~~~~~~~~~~~

2020-09-07

.vimrc vim配置文件

.vimrc 文件 vim配置文件 字体、颜色 各类插件 ------------ 具体配置步骤找寻相关博客 仅供参考

2020-09-06

RTL8822CE_WiFi_linux_v5.9.0_36003_COEX20191120-1515.20200220-master.zip

RTL8822CE_WiFi_linux_v5.9.0 无线网卡驱动 1.解压 2.sudo sh ./install.sh ---------------------ok------------------

2020-09-06

卷积神经网络jupyter notebook详解,代码+图示

卷积神经网络(CNN)代码+图示详解,注解详细,深度解析CNN原理,手写数字识别代码+数据---------

2020-03-23

双电机MOS驱动工程(双面板+四层板)智能车驱动

恩智浦智能车双电机MOS驱动,双层板+四层板工程文件,元件库齐全,可直接打板焊接,电路稳定。--------------------

2020-03-23

全桥MOS驱动,双电机驱动

双电机MOS驱动,曾用于飞思卡尔智能车,亲身实践。体积灵巧,便于安放。

2018-11-16

恩智浦智能车摄像头组国赛3米1程序

摄像头十二届国赛程序,速度稳定,可提升空间很大,实验室速度更快,注释详细,适合新手,新C车模

2018-11-05

恩智浦智能车摄像头组国赛程序

恩智浦智能车竞赛十二届国赛程序,稳定速度3.2m,实验室速度更快,根据个人水平,提升空间还很大。注释详细,适合新手,同样适合老鸟。

2018-11-05

空空如也

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

TA关注的人

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