- 博客(372)
- 资源 (25)
- 收藏
- 关注
原创 std::bind与std::ref配合使用时要注意的几个问题
在前面的博客,我们看到假如std::bind的输入函数的输入变量是引用类型,则我们可以在std::bind中用std::ref修饰它们。
2024-06-23 15:52:46 224
原创 浅析std::ref
根据等消息来源的描述,需要std::ref的场景主要是如下三种:假如std::thread需要调用一个函数,且这个函数的输入参数是引用的话,则std::thread对这个参数的调用必须用ref修饰。假如sid::bind需要调用一个函数,且这个函数的输入参数是引用的话,则std::bind对这个参数的调用必须用ref修饰。stl库调用,比如for_each的输入参数里也可以有一个函数指针。假如这个函数的输入参数是一个引用,则函数指针也要用std::ref修饰。下面通过几个实例来验证以上描述的真伪。
2024-06-23 15:31:13 546
原创 CMake学习笔记(三)区分macro与function
因为macro的set(in "2")又定义了一个新的变量in,并赋值2。在执行set(in "2")之前,message("in = "${in})的内容已经被替换成message("in = 1"),所以set(in "2")对后面的语句没有影响,仍然输出1。(事实上,set(in "2")把in当成了一个新的全局变量,后面还会提到)。这也是set(in "2")起作用的原因。可见,test(1)调用时,in = 1,但是set(in "2")随后将in 改为2.所以接下来打印in = 2。
2024-04-05 18:31:35 584
原创 理解pytorch的广播语义
1 两个tensor都至少有一个维度;2 两个tensor的维度个数要么完全一样,那个维度较少的tensor可以把自己缺少的维度补充为1;3 补齐可以补充多个维度,但是只能发生在所有已有维度的左边,不能插在已有维度之间,也不能出现在已有维度右边。4 假如运算是原位运算,则保存运算结果的变量的尺寸不应在运算前后发生变化。
2024-04-04 11:07:00 1276
原创 CMake学习笔记(二)从PROJECT_BINARY_DIR看外部编译和内部编译
1 从哪个路径执行cmake命令,变量PROJECT_BINARY_DIR就等于这个路径2cmake产生的中间文件、结果文件都保存在与CMakeLists.txt一起的路径下,这叫做内部编译。反之,两者分开的,就是外部编译。3 ADD_SUBDIRECTORY的第二个输入参数指定了cmake产生结果文件的保存路径。假如不指定这个输入参数,则用来存放编译结果的文件夹就是${PROJECT_BINARY_DIR};
2024-03-26 22:14:43 821
原创 CMake学习笔记(一)一个最简单的CMakeLists嵌套示例
这里,src文件夹需要稍后手动建立,因为在cmake之前,src里面要放进去源码。但是bin文件夹不需要手动建立,因为cmake过程中会自动建立bin。bin用来存放编译产生的结果文件。bin只是习惯的名称,你也可以换个名字,如bin1。这里顺便讲一下ADD_SUBDIRECTORY的用法它的第一个输入参数是用来存放源代码的文件夹,第二个参数是用来存放编译结果的文件夹。第二个参数可以输入,也可以不输入。
2024-03-26 21:00:12 674
原创 torch.multinomial()函数用法
在OpenAI联合创始人Andrej Karpathy的教程中,提到了函数torch.multinomial()。
2024-03-24 14:08:30 1164
原创 pytorch如何向tensor结尾添加元素或维度--torch.cat()、torch.unsqueeze()的用法
0意味着新元素4将沿着1,5,0的方向连接下去。所以增加的是[[4,4,4]],而不是[4,4,4]。原来p是沿着1,5,0 ----->增加的,这是p唯一的维度。unsqueeze之后,[1,5,0]成为p的第一个元素,下面可以再增加一个三元tensor,接在[1,5,0]后面。p--p含有三个变量,而torch,Tensor([4])显然只有一个变量。如下图,q已经是2行3列的tensor了,但是还可给它添加1行3列的[4,4,4]增加[4,4,4]:(注意,这里加入的其实是[[4,4,4]])
2024-03-24 11:05:56 1892
原创 总结python sorted函数对list、dictionary和tuple排序的行为
sorted函数默认采用升序排列,即是说,“值比较小”的排在前面。在这个原则下,sorted函数对数字和字符串的排列行为都不难理解。假如被排序的容器,其元素不是简单的数字或者字符串,而是复杂的容器,如list dictionary或者tuple,排序行为是什么样的?
2024-03-23 21:02:51 546
原创 python 的zip函数的用法
zip在英语里的意思是拉链。想象两个列表(或任何可迭代的容器),a和b。两者各自有若干元素。zip返回值也是一个容器,容器的每个元素都是一个二元元组(tuple)。如下所示:这个结构像是现实中的拉链一样,所以叫zipzip具有如下性质:zip的返回值含有的元素个数与较短的输入容器相等。
2024-03-07 13:01:45 402
原创 linux(阿里云)安装pytorch
ubuntu22.04已经预装了python 3及pip。阿里云 ubuntu 22.04 UEFI版 64位。1 检查python3和pip3是否已经安装。3 安装完毕,检查pytorch版本。2 安装pytorch。
2024-02-15 17:31:50 655
原创 Linux源码编译python3(以及必要的依赖包libffi)
安装完成后,libffi.so安装在/usr/local/ib中。由于银河麒麟已经预装了python2.7,所以要把新的python与旧的区别开。的说法,解决办法是安装libffi。下面通过编译源码安装libffi。确认/usr/local/lib出现在ld.so.conf中。完成这一步,你就可以看到python3的版本号了。6.6.1 建立python3的软链接。6.6.2 建立pip3的软链接。6.2 解压,并进入解压后的路径。2 解压源码,进入解压的路径。1 下载python3源码。
2024-01-20 17:39:25 1469
原创 linux源码编译安装ninja
你需要安装的基本的依赖项有:git、autoconf、automake、libtool、make、cmake,python。除了python是操作系统预装的以外,其他的软件的源码安装办法均见我前面的博客。我的银河麒麟虚拟机上预装了python2.7。考虑到最新的ninja要求python3,我使用了一个较老的ninja版本ninja 1.11.1,以适应python2.7.这个re2c也可以用源码安装,不过不安装re2c也不影响ninja的安装。5 将ninja拷贝到/usr/bin/
2024-01-20 00:33:00 1677
原创 linux编译源码,安装valgrind
2 在虚拟机上解压。我使用的虚拟机是银河麒麟。下载了valgrind 3.22.0源码。3 进入解压的目录,执行。5 检查安装是否成功。
2024-01-19 15:50:45 587
原创 安装libX11过程记录
目录编译平台准备工作参考信息源安装步骤1 建立文件夹/opt/libX11target2 定义环境变量PKG_CONFIG_PATH3 安装xproto-7.0.313.1 下载xproto-7.0.313.2 解压3.3 进入解压后的文件夹3.4 建立build文件夹3.5 cd build3.6 配置3.7 make3.8 sudo make install4 安装xextproto-7.3.04.1 下载xextptoro4.2 解压4.3 进入解压后的文件夹4.4 建立build文件夹4.5 c
2023-10-10 22:45:16 1741
原创 源码编译elfutils
7 sudo make install 安装完毕。1 下载elfutils-0.170源码。编译环境 阿里云ubuntu20.04。6 再执行一遍make。
2023-09-30 15:12:49 810
原创 源码编译安装zstd
目录1 下载源码https://github.com/facebook/zstd2 解压3 在解压后的目录里输入make4 sudo make install 安装完毕5 输入whereis zstd 检查安装结果
2023-09-29 23:25:48 1721 3
原创 如何让一个uniform variable在多级shader中都起作用(类似C语言的全局变量)?
GLSL编程中通常设计多个shader,如vertex shader, fragment shader等等。在最近的某个项目中,我需要定义一个变量,该变量类似C语言中的全局变量,要同时在两个shader中都起作用。指出,只要在两个shader中同时声明这个变量即可(当然,这个变量在两个shader中必须采用同一个名字)
2023-09-24 17:14:48 89
原创 客户端远程启动服务器脚本文件
有两台计算机,一台是linux客户端,另一台是linux服务器。要求操作员可以在客户端远程启动服务器上的脚本文件,控制服务器。方法一、二有共同的问题,那就是要操作员手动输入登录密码。ssh登录后,通常操作员会处于服务器的~路径下。通过ls命令,你会看到生成的id_rsa.pub id_rsa。客户端通过ssh登录服务器,然后通过./脚本名 启动脚本。为了实现免密码操作,还要在客户端和服务端都安装密钥。首先在客户端~路径下, cd .ssh。直接在服务器的~路径下建立一个脚本。
2023-08-15 00:55:47 272
原创 win10 平台搭建react native 并在 Android模拟器上运行app
win10 平台搭建react native 并在 Android模拟器上运行app
2023-05-14 22:19:32 1856 2
原创 html水平排列三个元素,且三者占宽度相同
包含三个元素的父div使用class="Horizontal"标记。其css的display设置为flex。这里的第一和第三个元素都是文字描述,中间的元素是一张图片。如何让三者水平排列,且占宽度相同?三个元素的class均设置为"HoriElement",各自的flex属性均设为1。使用css的flex。做到以上两点,就能实现水平排列,且宽度相同。
2023-05-07 22:38:08 151
原创 css实现元素的横向运动动画效果
接下来的@keyframes定义动画的具体行为。@keyframes后面的字符串对应前面animation-name的名字。这里to的状态是translateX(100px),表示动画结束时的状态是沿X方向偏移100个像素。animation-iteration-count是动画重复的次数,假如取值是infinite,则重复无限次。animation-direction: alternate表示相邻的两次动画运行的方向是相反的。其中animation-name定义了动画的名字,在后面要用的。
2023-05-07 22:22:09 795
原创 html中给一类标签定义css的办法
以上代码里的div.somebody将css作用于class="somebody"的div上面。但是不作用于非div的标签。在html开发过程里,我需要给多个标签定义同一套css。
2023-05-07 19:39:43 166
基于qt的程序,演示了如何通过setStyleSheet配置checkbox按钮的外观。
2022-06-25
DXSDK 2010 Redistribution 32位 2010 Redistribution 64位
2022-04-23
assimp 3.1.1的源码以及 用vs2013, vs2019分别编译产生的dll和lib(64位)
2022-04-23
定制QWidget标题栏的示例,并含有qss配置QTabWidget样式的示例
2022-04-10
release.rar
2020-02-27
CVIEW显示灰度图示例
2018-11-25
基于opengl的曲线绘制示例
2018-10-15
mfc写入xls文件示例
2018-09-05
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人