- 博客(10)
- 资源 (13)
- 收藏
- 关注
原创 玩转pytorch和tensorflow之(5)——全连接层
全连接层在tensorflow中是叫Dense层,在pytorch中叫线性层(Linear),全连接层可以将输入特征与每个神经元之间的连接权重进行线性运算:矩阵乘法和偏置加法操作,得到最终输出结果,它确确实实是一个线性单元。Dense(units=8)的weight形状是(4,8),bias形状是(8,)注意Dense不需要定义输入的通道,它自己会根据输入的形状定义获取输入的通道。假定输入的通道数目是4,输出的通道数目是8,输入的形状是(1,5,6,4)。好了,全连接层的转换已经完成,你自己去试试看吧。
2024-08-08 08:36:24 237
原创 玩转pytorch和tensorflow之(2)——conv2d
tensorflow的'valid'表示不padding,对应pytorch是(0,0),'same'表示输出形状和输入保持一致,pytorch需要根据输出输入的维度变化公式计算padding的数值。例如对于(2,3)的卷积核,输入4通道输出8通道,则weight权重的形状是(2,3,4,8)而同样的配置下,pytorch的weight权重的形状是(8,4,2,3)transpose(0,3,1,2),输出再转置回来,保持和tensorflow是一样的。permute(2,3,1,0),bias是一样的。
2024-08-08 08:11:43 238
原创 玩转pytorch和tensorflow之(4)——GRU
而pytorch的GRU则有weight_ih_l0,weight_hh_l0,bias_ih_l0,bias_hh_l0这4组参数。你需要把kernel,recurrent_kernel,bias转换到weight_ih_l0,weight_hh_l0,bias_ih_l0,bias_hh_l0上去。OK,你已经有了一个GRU模块,tensorflow下训练的,现在你想用训练好的GRU模型的参数在pytorch环境中来做推理。3)由bias_ih_l0,bias_hh_l0得到bias。
2024-08-08 07:06:41 279
原创 玩转pytorch和tensorflow之(3)——layernorm
与 BatchNormalization不同的是,LayerNormalization 是在指定的特征维度上进行归一化的,而BatchNormalization是在数据批次维度上进行归一化的。torch的LayerNorm转tensorflow的LayerNormalization,过程和上面类似,torch中的weight参数和bias参数需要做reshape才能给到tensorflow。注意有一个reshape。模型的输入维度定义:[1,2,3,4],最后两维是[3,4],将会对这两个维度归一化。
2024-08-07 21:56:58 187
原创 windows下用ConEmu启动分组命令行
假如你建立了一个目录叫做work2024,里面有一个proj的子目录是你的工程所在位置,把这个批处理文件丢在work2024目录下面,运行起来之后,会自动生成上述的三个dos界面,分别用于调试,加载和编译。它是一款多文档界面的dos窗口,就是说,虽然只有一个GUI界面,但是可以通过选择不同的标签激活需要的页面,实现多个dos命令窗口的切换。命令行工具以其高效,简洁,方便,是许多事务的必选操作工具,例如命令行编译,命令行加载程序,命令行调试等。-Title 定义显示在标题栏中的内容,例如这里是一键下载。
2024-08-06 20:00:17 304
原创 用makefile作为神经网络训练/推理的入口
假如你有一个神经网络需要训练,假设名叫basenet,然后需要训练不同的参数下的版本,比较性能上的差异,于是可以在basenet中放置网络的定义,训练脚本train.py,推理脚本infer.py,还有其它需要的脚本...,然后建立和basenet平行的目录,例如basenet-1,basenet-2,...这些目录只需要放一个makefile以及训练参数的定义config.py,他们之间只有config.py有差异。进入到basenet的上一层,我这里是makefile-train,输入命令即可。
2024-08-06 19:26:59 224
原创 玩转pytorch和tensorflow之(1)——batchnorm
pytorch的BatchNorm2d需要把归一化的维度放到C所在的维度,对应维度索引[0,1,2,3]中的1,所以做了一个转置,输入的形状变为BWCH,把需要归一化的维度调到1。输入的形状为[1,2,3,4],BatchNormalization中的epislon参数对应BatchNorm2d 的eps参数,这里取1e-5。输入的形状为[1,2,3,4],BatchNormalization中的epislon参数对应BatchNorm2d 的eps参数,这里取1e-5。
2024-08-03 21:49:52 262
原创 彩色化输出你的print——用loguru替换print
loguru是一款日志记录工具,可以把日志用彩色的方式输出到控制台终端,也可以同时输出到文件中。和print接口用法完全一致,支持可变参数,可以直接替换print,同时可以用颜色突出重点,同时输出时间戳和打印语句所在的位置。在python中我们经常要用print输出一些打印信息,一旦打印信息过多,由于信息没有颜色标记,重点不够突出,想要关闭也不容易找到位置。然后找到loguru安装的目录,一般是在python环境的Lib\site-packages\loguru目录。2.修改下面几个函数,用于彩色输出。
2024-08-03 20:03:25 278
原创 用vs studio编译一个c python 模块
这个helloworld模块只定义了一个接口,外部的名字是helloworld.hello,内部实现的函数是helloword(PyObject* self, PyObject* Py_UNUSED(args));这里模块名称是'helloworld',这里源文件只有一个:'src/helloworld.c'。下载后展开到webrtcvad-2.0.10目录,到该目录运行python setup.py build install即可编译并安装。最后,我们可以编译复杂的模块,例如webrtcvad等。
2024-08-03 19:09:58 391
原创 windows下搭建python的C模块的visual studio编译器
如果你安装的虚拟python目录是X:\virtual_python\Python38_msvc,那么就是X:\virtual_python\Python38_msvc\Lib\site-packages\setuptools\_distutils\_msvccompiler.py和X:\virtual_python\Python38_msvc\Lib\site-packages\setuptools\msvc.py。重申一下,想要省心省力的话,编译器可以用免安装的。这一句注释掉,改成了。
2024-08-02 13:23:08 232 1
Sandboxie-5.06-portable.zip
2020-07-10
cdependancy.exe
2014-05-23
GE 安卓照度计-视力保护助手
2013-08-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人