<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[pplxlee的博客]]></title><description><![CDATA[野生小白程序员]]></description><link>https://blog.youkuaiyun.com/pplxlee</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; pplxlee]]></copyright><item><title><![CDATA[【libuv】实现UDP转发]]></title><link>https://blog.youkuaiyun.com/pplxlee/article/details/112272749</link><guid>https://blog.youkuaiyun.com/pplxlee/article/details/112272749</guid><author>pplxlee</author><pubDate>Wed, 06 Jan 2021 14:42:54 +0800</pubDate><description><![CDATA[文章目录综述代码
综述
使用uv_udp_init()分别初始化得到uv_udp_t类型的接收和发送的UDP套接字udp_recv_socket, udp_send_socket。
使用uv_udp_bind()函数，将套接字绑定到本机，端口设置为0则由系统分配。
使用uv_udp_connect()函数，给套接字连接一个远程地址，则调用uv_udp_send()函数发送信息时，不需要指定远程地址。
代码
#include &lt;assert.h&gt;
#include &lt;stdio.h&gt;
]]></description><category></category></item><item><title><![CDATA[【Python】使用PyInstaller打包python程序文档翻译]]></title><link>https://blog.youkuaiyun.com/pplxlee/article/details/109701529</link><guid>https://blog.youkuaiyun.com/pplxlee/article/details/109701529</guid><author>pplxlee</author><pubDate>Sun, 15 Nov 2020 11:12:31 +0800</pubDate><description><![CDATA[翻译使用 PyInstaller文档PyInstaller打包python程序使用 PyInstaller常规选项生成内容选项打包内容和所在位置选项生成过程选项Windows 和 Mac OS X 的特定选项Windows 的特定选项Windows 并排程序集搜索选项(高级)Mac OS X 的特定选项很少使用的特殊选项简化命令从Python代码运行PyInstaller执行PyInstaller与Python优化使用UPX加密Python字节码确定提取位置多平台支持支持多python环境支持多操作系统捕获]]></description><category></category></item><item><title><![CDATA[卷积神经网络笔记]]></title><link>https://blog.youkuaiyun.com/pplxlee/article/details/108484179</link><guid>https://blog.youkuaiyun.com/pplxlee/article/details/108484179</guid><author>pplxlee</author><pubDate>Wed, 09 Sep 2020 10:44:05 +0800</pubDate><description><![CDATA[随便记录

下采样可以使用卷积层kernel_size=4, padding=1, stride=2这组参数，上采样可以使用相同参数的转置卷积ConvTranspose2d；
下采样和转置卷积不要使用kernel_size=3, padding=1, stride=2，小心棋盘效应；
卷积神经要注意网络的感受野，尤其是编解码网络，每个点的结果只会受到其感受野的信息影响；


...]]></description><category></category></item><item><title><![CDATA[测试caffe和pytorch结果的一致性]]></title><link>https://blog.youkuaiyun.com/pplxlee/article/details/108239661</link><guid>https://blog.youkuaiyun.com/pplxlee/article/details/108239661</guid><author>pplxlee</author><pubDate>Wed, 26 Aug 2020 14:45:26 +0800</pubDate><description><![CDATA[目录测试caffe和pytorch结果的一致性caffe模型pytorch模型和一致性测试代码
测试caffe和pytorch结果的一致性
以最简单的卷积为例。
caffe模型
name: "conv_test"
layer {
  name: "data"
  type: "Input"
  top: "data"
  input_param { shape: { dim: 1 dim: 32 dim: 21 dim: 21 } }
}
layer {
  name: "conv1"
  type: "C]]></description><category></category></item><item><title><![CDATA[OpenGL离屏渲染流程代码]]></title><link>https://blog.youkuaiyun.com/pplxlee/article/details/108171190</link><guid>https://blog.youkuaiyun.com/pplxlee/article/details/108171190</guid><author>pplxlee</author><pubDate>Sat, 22 Aug 2020 17:09:22 +0800</pubDate><description><![CDATA[目录OpenGL离屏渲染初始化用于离屏渲染的`Renderbuffer`和`Framebuffer`离屏渲染绘制到窗口从离屏渲染Framebuffer读取图像到内存
OpenGL离屏渲染
初始化用于离屏渲染的Renderbuffer和Framebuffer
// 初始化
// -----------------
// 生成&amp;绑定&amp;创建储存空间Renderbuffer
glGenRenderbuffers(1, &amp;renderbuffer);
glBindRenderbuffer(GL]]></description><category></category></item><item><title><![CDATA[Windows 运行时加载动态库]]></title><link>https://blog.youkuaiyun.com/pplxlee/article/details/100111697</link><guid>https://blog.youkuaiyun.com/pplxlee/article/details/100111697</guid><author>pplxlee</author><pubDate>Tue, 27 Aug 2019 17:41:00 +0800</pubDate><description><![CDATA[下面是一个运行时加载nvcuda.dll，并检测当前驱动版本最大支持的CUDA版本的例子。
#include "cuda.h"
#include &lt;stdio.h&gt;
#include &lt;Windows.h&gt;

typedef CUresult (__cdecl *CU_DriverGetVersion)(int *);

int main()
{
    HINS...]]></description><category></category></item><item><title><![CDATA[python 列表推导式]]></title><link>https://blog.youkuaiyun.com/pplxlee/article/details/96929365</link><guid>https://blog.youkuaiyun.com/pplxlee/article/details/96929365</guid><author>pplxlee</author><pubDate>Mon, 22 Jul 2019 10:29:00 +0800</pubDate><description><![CDATA[用于从一个列表生成一个新列表
格式
[表达式 for 变量 in 列表 if 条件]
例子：
0到100（不含100）的平方列表
[x**2 for x in range(0, 100)]
0到1000（不含1000）中，能被3或5整除的数
[x for x in range(0, 1000) if (x % 3 is 0) | (x % 5 is 0)]
优势：
列表生成式比直接写的循环语句更简...]]></description><category></category></item><item><title><![CDATA[【转载于码云代码管理最佳实践】我们团队怎么做分支管理]]></title><link>https://blog.youkuaiyun.com/pplxlee/article/details/107438831</link><guid>https://blog.youkuaiyun.com/pplxlee/article/details/107438831</guid><author>pplxlee</author><pubDate>Fri, 05 Jul 2019 11:18:00 +0800</pubDate><description><![CDATA[我们团队怎么做分支管理

合并代码将别人代码合丢了
发布了并不计划上线的代码
代码分支非常多
长期在一个分支上开发
多人共用一个分支开发
每次提交代码都有冲突
不知道别人分支做什么用的

分支管理一直是技术团队最基础的但是却最容易忽视的一块，如果你团队中也遇到上述的问题，那么，建议你可以看看我们是怎么解决这些问题的。
我们团队近80人，大大小小上百个项目，历史原因一些项目属于单体应用，开...]]></description><category></category></item><item><title><![CDATA[【Qt笔记】QAction与QToolButton的关联]]></title><link>https://blog.youkuaiyun.com/pplxlee/article/details/95689530</link><guid>https://blog.youkuaiyun.com/pplxlee/article/details/95689530</guid><author>pplxlee</author><pubDate>Sun, 30 Jun 2019 11:57:00 +0800</pubDate><description><![CDATA[QAction可以理解为一个动作数据，包含了这个同坐相关的图标、文本、是否可用等数据和状态，以及连接对应的槽函数，用于执行这个动作。
QToolButton则可以使用QAction对象作为后端，显示这个QAction的图标，关联其是否可用的状态。

简单示例：

QAction *exampleAction = new QAction(parent);

... (省略了设置其图标...]]></description><category></category></item><item><title><![CDATA[关于奇异值分解（SVD）的理解]]></title><link>https://blog.youkuaiyun.com/pplxlee/article/details/95689526</link><guid>https://blog.youkuaiyun.com/pplxlee/article/details/95689526</guid><author>pplxlee</author><pubDate>Tue, 25 Jun 2019 09:52:00 +0800</pubDate><description><![CDATA[奇异值分解实际上是将一个矩阵，分解成为两个不同维度（行数和列数）上的正交向量集之间的映射变换，奇异值则是变换时的缩放！
例如上面的矩阵M就是一个5维映射到4维的变换矩阵，而SVD分解得到的奇异值和奇异向量则反应了这种映射关系，可以看出5维空间的各个正交方向上，缩放了多少后，映射到了4维的哪些方向。...]]></description><category></category></item><item><title><![CDATA[【QtAV】QtAV中的工厂模式]]></title><link>https://blog.youkuaiyun.com/pplxlee/article/details/95689522</link><guid>https://blog.youkuaiyun.com/pplxlee/article/details/95689522</guid><author>pplxlee</author><pubDate>Wed, 19 Jun 2019 14:45:00 +0800</pubDate><description><![CDATA[QtAV中的各个模块大量使用的工厂模式，下面对其实现进行介绍。
工厂模式的使用
以VideoRenderer 类为例子，他含有下面3个工厂模式相关的方法，Register方法用于给一个产品&lt;class C&gt;注册其ID和名称，create方法用于通过ID或名称生产一个产品实例。

    template&lt;class C&gt;
    static bool Regi...]]></description><category></category></item><item><title><![CDATA[图像算法帧率测试框架]]></title><link>https://blog.youkuaiyun.com/pplxlee/article/details/95689518</link><guid>https://blog.youkuaiyun.com/pplxlee/article/details/95689518</guid><author>pplxlee</author><pubDate>Fri, 14 Jun 2019 17:48:00 +0800</pubDate><description><![CDATA[为了更好更方便的测试图像生成或算法的速度，设计了如下的框架，来测试生成/处理帧率。

完整工程以发布github仓库，点击这里。]]></description><category></category></item><item><title><![CDATA[【Qt官方例程学习笔记】Application Example（构成界面/QAction/退出时询问保存/用户偏好载入和保存/文本文件的载入和保存/QCommandLineParser解析运行参数）...]]></title><link>https://blog.youkuaiyun.com/pplxlee/article/details/95689513</link><guid>https://blog.youkuaiyun.com/pplxlee/article/details/95689513</guid><author>pplxlee</author><pubDate>Thu, 13 Jun 2019 08:08:00 +0800</pubDate><description><![CDATA[The Application example shows how to implement a standard GUI application with menus, toolbars, and a status bar. The example itself is a simple text editor program built around QPlainTextEdit.
Nearl...]]></description><category></category></item><item><title><![CDATA[【Qt官方例程学习笔记】Raster Window Example（画笔的平移/旋转/缩放应用）]]></title><link>https://blog.youkuaiyun.com/pplxlee/article/details/95689509</link><guid>https://blog.youkuaiyun.com/pplxlee/article/details/95689509</guid><author>pplxlee</author><pubDate>Wed, 12 Jun 2019 22:07:00 +0800</pubDate><description><![CDATA[这个例子显示了如何使用QPainter渲染一个简单的QWindow。
值得学习的内容
&lt;QtGui&gt;头文件
#include &lt;QtGui&gt;就可以使用Qt GUI模块中的所有类，当然，愿意的话也可以分开各个include。
QBackingStore与绘制
用于管理基于QPainter的图形的窗口后缓冲区。
在RasterWindow构造函数中，我们创建back...]]></description><category></category></item><item><title><![CDATA[【Qt官方例程学习笔记】Analog Clock Window Example （画笔的平移/旋转/缩放应用）...]]></title><link>https://blog.youkuaiyun.com/pplxlee/article/details/95689504</link><guid>https://blog.youkuaiyun.com/pplxlee/article/details/95689504</guid><author>pplxlee</author><pubDate>Wed, 12 Jun 2019 14:38:00 +0800</pubDate><description><![CDATA[这个例子演示了如何使用QPainter的转换和缩放特性来简化绘图。
值得学习的：
定时器事件ID检查：
在定时器事件中检查定时器id是比较好的实践。
QPainter抗锯齿：
We call QPainter::setRenderHint() with QPainter::Antialiasing to turn on antialiasing. This makes drawing o...]]></description><category></category></item><item><title><![CDATA[【Qt官方例程学习笔记】Address Book Example（代理模型）]]></title><link>https://blog.youkuaiyun.com/pplxlee/article/details/95689499</link><guid>https://blog.youkuaiyun.com/pplxlee/article/details/95689499</guid><author>pplxlee</author><pubDate>Tue, 11 Jun 2019 15:20:00 +0800</pubDate><description><![CDATA[地址簿示例展示了如何使用代理模型在单个模型的数据上显示不同的视图。
本例提供了一个地址簿，允许按字母顺序将联系人分组为9组:ABC、DEF、GHI、…,VW,…XYZ。这是通过在同一个模型上使用多个视图实现的，每个视图都使用QSortFilterProxyModel类的一个实例进行过滤。
综述
地址簿包含5个类:MainWindow、AddressWidget、TableModel、NewA...]]></description><category></category></item><item><title><![CDATA[【Qt文档阅读】事件系统]]></title><link>https://blog.youkuaiyun.com/pplxlee/article/details/95689495</link><guid>https://blog.youkuaiyun.com/pplxlee/article/details/95689495</guid><author>pplxlee</author><pubDate>Mon, 10 Jun 2019 08:10:00 +0800</pubDate><description><![CDATA[在Qt中，事件对象都继承于QEvent类，它表示应用程序内部或由于应用程序需要了解的外部活动而发生的事情。事件可以由QObject子类的任何实例接收和处理，尤其是widget。本文档描述如何在典型应用程序中交付和处理事件。
事件的传递
事件发生时，Qt创建事件对象（QEvent的适当的子类），调用要传递到的QObject的实例的event()方法，完成事件的传递。
event()方法本身不处...]]></description><category></category></item><item><title><![CDATA[【Qt文档阅读】Window and Dialog Widgets]]></title><link>https://blog.youkuaiyun.com/pplxlee/article/details/95689491</link><guid>https://blog.youkuaiyun.com/pplxlee/article/details/95689491</guid><author>pplxlee</author><pubDate>Tue, 04 Jun 2019 21:29:00 +0800</pubDate><description><![CDATA[Window and Dialog Widgets
没有嵌入到父控件中的控件（widget）称之为窗口（window)。通常窗口带有边框和标题栏。
Windows通常集成到桌面环境中，并且在某种程度上由桌面环境提供的窗口管理系统管理。例如，应用程序的选定窗口在任务栏中表示。
Primary and Secondary Windows
任何没有父组件的QWidget都将成为一个窗口，并且在大...]]></description><category></category></item><item><title><![CDATA[【Qt官方例程学习笔记】Getting Started Programming with Qt Widgets]]></title><link>https://blog.youkuaiyun.com/pplxlee/article/details/95689486</link><guid>https://blog.youkuaiyun.com/pplxlee/article/details/95689486</guid><author>pplxlee</author><pubDate>Tue, 04 Jun 2019 11:33:00 +0800</pubDate><description><![CDATA[创建一个QApplication对象，用于管理应用程序资源，它对于任何使用了Qt Widgets的程序都必要的。对于没有使用Qt Widgets 的GUI应用，可以使用QGuiApplication代替。
QApplication::exec() 进入事件循环。Qt应用运行时，会产生事件并被发送到应用的widgets。事件举例：鼠标点击和键盘输入。
更多相关阅读：
https://doc.q...]]></description><category></category></item><item><title><![CDATA[在C++中加载Pytorch模型]]></title><link>https://blog.youkuaiyun.com/pplxlee/article/details/90445316</link><guid>https://blog.youkuaiyun.com/pplxlee/article/details/90445316</guid><author>pplxlee</author><pubDate>Wed, 22 May 2019 15:44:06 +0800</pubDate><description><![CDATA[在C++中加载Pytorch模型
下面几段将概述PyTorch提供的从现有Python模型到序列化表示的路径，该序列化表示完全可以从c++加载和执行，不依赖于Python。
第一步：将Pytorch模型转换为Torch脚本
Torch Script 是Pytorch模型的一种表示，可以被Torch Script编译器所理解，编译和序列化。在多数情况下，将模型转化为Torch Script只需要很少...]]></description><category></category></item></channel></rss>