<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Simplify_boy的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Simplify_boy</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Simplify_boy]]></copyright><item><title><![CDATA[onnx报错]]></title><link>https://blog.youkuaiyun.com/Simplify_boy/article/details/126874242</link><guid>https://blog.youkuaiyun.com/Simplify_boy/article/details/126874242</guid><author>Simplify_boy</author><pubDate>Thu, 15 Sep 2022 16:29:05 +0800</pubDate><description><![CDATA[import onnx 报错：undefined symbol: _ZN6google8protobuf7Message17CopyWithSizeCheckEPS1_RKS1_]]></description><category></category></item><item><title><![CDATA[ros2 自定义消息]]></title><link>https://blog.youkuaiyun.com/Simplify_boy/article/details/120313620</link><guid>https://blog.youkuaiyun.com/Simplify_boy/article/details/120313620</guid><author>Simplify_boy</author><pubDate>Wed, 15 Sep 2021 17:48:36 +0800</pubDate><description><![CDATA[在使用ros2时，有时需要自定义一个数据结构传递数据。具体方法如下

## 创建ros2包


ros2 pkg create --build-type ament_cmake --node-name box box

## 创建msg文件夹，并创建*.msg数据结构


cd box
mkdir msg
touch box.msg


box.msg中添加数据结构


std_msgs/Header header
int32 x
int32 y
int32 width
int32 height

## 修]]></description><category></category></item><item><title><![CDATA[ubuntu c++时间计算]]></title><link>https://blog.youkuaiyun.com/Simplify_boy/article/details/118494066</link><guid>https://blog.youkuaiyun.com/Simplify_boy/article/details/118494066</guid><author>Simplify_boy</author><pubDate>Mon, 05 Jul 2021 17:09:39 +0800</pubDate><description><![CDATA[#include &lt;stdio.h&gt;
#include &lt;sys/time.h&gt;
#include &lt;unistd.h&gt;
class Time
{
public:
    Time(){}
    ~Time(){}

    void start()
    {
        gettimeofday(&amp;tv1,nullptr);
    }

    int cost()
    {
        gettimeofday(&amp;tv2,nullpt.]]></description><category></category></item><item><title><![CDATA[yolo5工程化]]></title><link>https://blog.youkuaiyun.com/Simplify_boy/article/details/114578942</link><guid>https://blog.youkuaiyun.com/Simplify_boy/article/details/114578942</guid><author>Simplify_boy</author><pubDate>Tue, 09 Mar 2021 11:57:10 +0800</pubDate><description><![CDATA[yolov5
模型使用

工程

git clone https://github.com/ultralytics/yolov5.git


预训练模型
首次运行时，attempt_download函数会下载对应的模型。模型参数配置在models/*.yaml里。
yolov5网络组成
Focus + Backbone + Detect
coco数据集训练
下载coco数据集，放在于yolov5同一目录下。

python3 train.py --data coco.yaml --cfg yolov5s.y]]></description><category></category></item><item><title><![CDATA[ubuntu16.04安装/卸载nvidia-driver/cuda]]></title><link>https://blog.youkuaiyun.com/Simplify_boy/article/details/109026422</link><guid>https://blog.youkuaiyun.com/Simplify_boy/article/details/109026422</guid><author>Simplify_boy</author><pubDate>Mon, 12 Oct 2020 14:38:49 +0800</pubDate><description><![CDATA[卸载
卸载nvidia驱动
方法1
sudo apt-get purge nvidia*
sudo apt-get autoremove
sudo apt-get autoclean
dpkg -l | grep ^rc | awk '{print $2}'|sudo xargs dpkg -P
dpkg -l | grep nvidia | awk '{print $2}'|sudo xargs dpkg -P


方法2
sudo ./NVIDIA-Linux-&lt;version&gt;.run -]]></description><category></category></item><item><title><![CDATA[精度/召回/AP/mAP]]></title><link>https://blog.youkuaiyun.com/Simplify_boy/article/details/108779922</link><guid>https://blog.youkuaiyun.com/Simplify_boy/article/details/108779922</guid><author>Simplify_boy</author><pubDate>Thu, 24 Sep 2020 17:56:36 +0800</pubDate><description><![CDATA[import numpy as np
import matplotlib.pyplot as plt

def voc_ap(rec, prec, use_07_metric=False):
    if use_07_metric:
        # 11 point metric
        ap = 0.
        for t in np.arange(0., 1.1, 0.1):
            if np.sum(rec &gt;= t) == 0:
             ]]></description><category></category></item><item><title><![CDATA[conda环境下tensorrt安装]]></title><link>https://blog.youkuaiyun.com/Simplify_boy/article/details/108733867</link><guid>https://blog.youkuaiyun.com/Simplify_boy/article/details/108733867</guid><author>Simplify_boy</author><pubDate>Tue, 22 Sep 2020 16:04:01 +0800</pubDate><description><![CDATA[下载tensorrt
登录：https://developer.nvidia.com/tensorrt
进入：https://developer.nvidia.com/nvidia-tensorrt-7x-download
在Tar File Install Packages For Linux x86下，选择
TensorRT 7.0.0.11 for Ubuntu 16.04 and CUDA 10.0 tar package
下载获取的文件TensorRT-7.0.0.11.Ubuntu-16.04.]]></description><category></category></item><item><title><![CDATA[优化器]]></title><link>https://blog.youkuaiyun.com/Simplify_boy/article/details/108326231</link><guid>https://blog.youkuaiyun.com/Simplify_boy/article/details/108326231</guid><author>Simplify_boy</author><pubDate>Mon, 31 Aug 2020 18:16:36 +0800</pubDate><description><![CDATA[优化器
SGD
Wnew=Wold−α∂Loss∂WoldW_{new}=W_{old} - \alpha\frac{\partial{Loss}}{\partial{W_{old}}}Wnew​=Wold​−α∂Wold​∂Loss​
α\alphaα:学习率
缺点：容易陷入局部极小值
加入动量（Momentum），解决局部极小值。
SGD+Momentum
Momentum更新：Vnew=ηVold−α∂LossWoldV_{new}=\eta V_{old} - \alpha \frac{\parti]]></description><category></category></item><item><title><![CDATA[c++测试题]]></title><link>https://blog.youkuaiyun.com/Simplify_boy/article/details/107951967</link><guid>https://blog.youkuaiyun.com/Simplify_boy/article/details/107951967</guid><author>Simplify_boy</author><pubDate>Wed, 12 Aug 2020 11:32:15 +0800</pubDate><description><![CDATA[栈的压入、弹出序列
方法：模拟法
直接模拟即可。因为弹出之前的值都会先入栈，所以这里用个栈来辅助。
#include &lt;vector&gt;
#include &lt;stack&gt;
#include &lt;iostream&gt;
using namespace std;
/**
 * @brief 给出一个入栈序列pushV和出栈序列popV, 判断出栈序列是否满足条件.
 * @param pushV    栈的压入顺序.
 * @param popV     是否可能为该栈的弹出顺序.
]]></description><category></category></item><item><title><![CDATA[排序比较算法c++]]></title><link>https://blog.youkuaiyun.com/Simplify_boy/article/details/107858523</link><guid>https://blog.youkuaiyun.com/Simplify_boy/article/details/107858523</guid><author>Simplify_boy</author><pubDate>Fri, 07 Aug 2020 11:33:26 +0800</pubDate><description><![CDATA[冒泡排序
时间复杂度：O(n2)O(n^2)O(n2)
#include &lt;stdlib.h&gt;
#include &lt;stdio.h&gt;
#include &lt;iostream&gt;
using namespace std;
void bubbleSort(int arr[], int len)
{
    int i, j;
    for (i = 0; i &lt; len - 1; i++)
    {
    	for (j = 0; j &lt; len - 1 - i]]></description><category></category></item><item><title><![CDATA[C++STL-ALGORITHM函数]]></title><link>https://blog.youkuaiyun.com/Simplify_boy/article/details/107758048</link><guid>https://blog.youkuaiyun.com/Simplify_boy/article/details/107758048</guid><author>Simplify_boy</author><pubDate>Mon, 03 Aug 2020 10:51:59 +0800</pubDate><description><![CDATA[在编写c++代码时，有很多常用方法，在stl algorithm中给出了接口，这里简单介绍部分方法。
std::foreach
逐个元素传入函数或类实例，执行相应的操作。
template&lt;class InputIterator, class Function&gt;
  Function for_each(InputIterator first, InputIterator last, Function fn)
{
  while (first!=last) {
    fn (*first);
 ]]></description><category></category></item><item><title><![CDATA[CNN网络感受野计算]]></title><link>https://blog.youkuaiyun.com/Simplify_boy/article/details/107413603</link><guid>https://blog.youkuaiyun.com/Simplify_boy/article/details/107413603</guid><author>Simplify_boy</author><pubDate>Fri, 17 Jul 2020 17:46:05 +0800</pubDate><description><![CDATA[计算公式
lk=lk−1+[(fk−1)∏i=1k−1si]l_{k}=l_{k-1}+[(f_{k}-1)\prod_{i=1}^{k-1}s_i]lk​=lk−1​+[(fk​−1)i=1∏k−1​si​]
其中lkl_{k}lk​为k层的感受野，fkf_{k}fk​为k层的卷积核大小，∏i=1k−1si\prod_{i=1}^{k-1}s_i∏i=1k−1​si​为stride的乘积。




No.
layers
kernel size
stride




1
conv1
3x3
2


2
po]]></description><category></category></item><item><title><![CDATA[统计学习（1）]]></title><link>https://blog.youkuaiyun.com/Simplify_boy/article/details/107070422</link><guid>https://blog.youkuaiyun.com/Simplify_boy/article/details/107070422</guid><author>Simplify_boy</author><pubDate>Wed, 01 Jul 2020 19:55:58 +0800</pubDate><description><![CDATA[概率
先验概率：根据以前的经验，提前知道的事件概率;如：今天下雨的概率;
后验概率：由果及因，后知后觉，概率时间的结果推测原因起作用的概率;如，今天下雨，求有乌云的概率;
似然概率：由因及果，似然likehood自然的推测，都是知道原因，求原因造成结果发生的概率。如：今天阴天，求下雨的概率。
模型学习

适用条件是什么？
解决什么问题？
对应的统计学习三要素？

统计学习的三要素：
假设空间：包含所有可能的条件概率分布或决策函数。
策略：按照什么样的准则学习或选择最优模型。（损失函数）
求解算法：使用什么样]]></description><category></category></item><item><title><![CDATA[卡尔曼跟踪]]></title><link>https://blog.youkuaiyun.com/Simplify_boy/article/details/107066516</link><guid>https://blog.youkuaiyun.com/Simplify_boy/article/details/107066516</guid><author>Simplify_boy</author><pubDate>Wed, 01 Jul 2020 16:59:06 +0800</pubDate><description><![CDATA[卡尔慢预测更新
predict：
x^i−=Ax^i−1+Bui−1\widehat{x}_i^{-} = A\widehat{x}_{i-1}+Bu_{i-1}xi−​=Axi−1​+Bui−1​
correction:
x^i=x^i−+k(yi−Hx^i−)\widehat{x}_i = \widehat{x}_i^{-}+k(y_i-H\widehat{x}_i^{-})xi​=xi−​+k(yi​−Hxi−​)
其中，kkk为kalman gain matrix; yiy_iyi​观测值; AAA]]></description><category></category></item><item><title><![CDATA[训练数据转换为PASCAL VOC2007]]></title><link>https://blog.youkuaiyun.com/Simplify_boy/article/details/107064882</link><guid>https://blog.youkuaiyun.com/Simplify_boy/article/details/107064882</guid><author>Simplify_boy</author><pubDate>Wed, 01 Jul 2020 15:33:08 +0800</pubDate><description><![CDATA[数据
我们已有标注数据个数为json保存的，现在训练代码使用的标注格式为PASCAL VOC2007，为了不修改代码，将数据转换到PASCAL VOC2007的xml格式。
转换代码
import os
import json
from lxml.etree import Element, SubElement, tostring, ElementTree
from xml.dom import minidom
# 从文件夹下获取json文件名
def ReadFileDir(path):
    file]]></description><category></category></item><item><title><![CDATA[linux 后台运行命令]]></title><link>https://blog.youkuaiyun.com/Simplify_boy/article/details/106837203</link><guid>https://blog.youkuaiyun.com/Simplify_boy/article/details/106837203</guid><author>Simplify_boy</author><pubDate>Thu, 18 Jun 2020 16:07:57 +0800</pubDate><description><![CDATA[nohup ./xxx.sh &amp;


]]></description><category></category></item><item><title><![CDATA[机器学习-损失函数]]></title><link>https://blog.youkuaiyun.com/Simplify_boy/article/details/106586515</link><guid>https://blog.youkuaiyun.com/Simplify_boy/article/details/106586515</guid><author>Simplify_boy</author><pubDate>Sat, 06 Jun 2020 15:38:42 +0800</pubDate><description><![CDATA[为什么使用损失函数
θj+1=θj−η∂J(θj)∂θj\theta_{j+1}=\theta_j-\eta\frac{\partial J(\theta_j)}{\partial \theta_j}θj+1​=θj​−η∂θj​∂J(θj​)​
θj+1\theta_{j+1}θj+1​:更新后的权重；η\etaη:学习率；∂J(θj)∂θj\frac{\partial J(\theta_j)}{\partial \theta_j}∂θj​∂J(θj​)​:权重的梯度。
∂J(θj)∂θj\frac{\p]]></description><category></category></item><item><title><![CDATA[c++注册类方法实现单例映射]]></title><link>https://blog.youkuaiyun.com/Simplify_boy/article/details/106557265</link><guid>https://blog.youkuaiyun.com/Simplify_boy/article/details/106557265</guid><author>Simplify_boy</author><pubDate>Sat, 06 Jun 2020 12:20:29 +0800</pubDate><description><![CDATA[概述
在caffe和阿里MNN中，广泛使用了注册方法，简化了代码的复杂程度。下面我们简单梳理一下。
分析

要实现一套多种计算架构使用的代码，如cpu、gpu等。
要在每个计算架构下，实现各种算子。
使用一套接口实现。
要达到以上要求，需要给各部分设置通用的接口，利用c++类的继承，能让所有的计算架构或算子具有相同的接口，接口一致，有利于代码的简化。

解析
定义通用结构

平台

typedef enum {
    MNN_FORWARD_CPU = 0,
    /*
     Firtly find]]></description><category></category></item><item><title><![CDATA[逻辑斯蒂回归与最大熵模型]]></title><link>https://blog.youkuaiyun.com/Simplify_boy/article/details/106311818</link><guid>https://blog.youkuaiyun.com/Simplify_boy/article/details/106311818</guid><author>Simplify_boy</author><pubDate>Tue, 02 Jun 2020 16:37:17 +0800</pubDate><description><![CDATA[概述
共同点：
都属于概率模型P(Y|X)；
对数线性模型：lnP(Y|X)=wx；在logit里面时关于x的线性函数，在最大熵里是关于x的函数的线性函数。
区别：
(1)逻辑斯蒂回：判别模型
(2)最大熵模型：生成模型，y和x都有随机性， 除了P(Y|X)，样本中的经验分布：
P‾(x)\overline{P}(x)P(x)
逻辑斯蒂回归模型
二维逻辑斯蒂回归模型
lnP(Y=1∣x)1−P(Y=1∣x)=w⋅x（1）ln\frac{P(Y=1|x)}{1-P(Y=1|x)}=w\cdot x      ]]></description><category></category></item><item><title><![CDATA[opencv交叉编译android库]]></title><link>https://blog.youkuaiyun.com/Simplify_boy/article/details/105506055</link><guid>https://blog.youkuaiyun.com/Simplify_boy/article/details/105506055</guid><author>Simplify_boy</author><pubDate>Mon, 27 Apr 2020 21:24:17 +0800</pubDate><description><![CDATA[准备
下载android-sdk
android-sdk
解压
tools 执行 ./android update sdk
选择一个build-tools安装
android-ndk
https://developer.android.google.cn/ndk/downloads
编译

cmake … -DCMAKE_TOOLCHAIN_FILE=…/platforms/android/and...]]></description><category></category></item></channel></rss>