<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[SilentOB的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/SilentOB</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; SilentOB]]></copyright><item><title><![CDATA[git多人协作流程best practice]]></title><link>https://blog.youkuaiyun.com/SilentOB/article/details/128676182</link><guid>https://blog.youkuaiyun.com/SilentOB/article/details/128676182</guid><author>SilentOB</author><pubDate>Fri, 13 Jan 2023 16:48:52 +0800</pubDate><description><![CDATA[git使用]]></description><category></category></item><item><title><![CDATA[tensorflow图优化详解]]></title><link>https://blog.youkuaiyun.com/SilentOB/article/details/117428665</link><guid>https://blog.youkuaiyun.com/SilentOB/article/details/117428665</guid><author>SilentOB</author><pubDate>Mon, 31 May 2021 20:43:15 +0800</pubDate><description><![CDATA[目录



]]></description><category></category></item><item><title><![CDATA[ONNX前向inference调试]]></title><link>https://blog.youkuaiyun.com/SilentOB/article/details/103957642</link><guid>https://blog.youkuaiyun.com/SilentOB/article/details/103957642</guid><author>SilentOB</author><pubDate>Mon, 13 Jan 2020 14:49:46 +0800</pubDate><description><![CDATA[ONNX作为一个方便在各大主流深度学习框架中迁移转换的中间表达式，在工业界使用越加频繁。关于ONNXgithub上有部分相关文档参考链接https://github.com/onnx/onnx，对相关接口的详细说明尚且不够。本文针对onnx的前向过程说明下常见的调试操作。

一、自建网络

ONNX提供onnx.helper接口，方便搭建节点以及网络，具体demo如下：


import onnx...]]></description><category></category></item><item><title><![CDATA[ONNX网络模型解析]]></title><link>https://blog.youkuaiyun.com/SilentOB/article/details/102863944</link><guid>https://blog.youkuaiyun.com/SilentOB/article/details/102863944</guid><author>SilentOB</author><pubDate>Fri, 01 Nov 2019 20:24:35 +0800</pubDate><description><![CDATA[ONNX是一种针对机器学习所设计的开放式的文件格式，用于存储训练好的模型。它使得不同的人工智能框架（如Pytorch, MXNet）可以采用相同格式存储模型数据并交互。 ONNX的规范及代码主要由微软，亚马逊 ，Facebook 和 IBM 等公司共同开发，以开放源代码的方式托管在Github上。目前官方支持加载ONNX模型并进行推理的深度学习框架有： Caffe2, PyTorc...]]></description><category></category></item><item><title><![CDATA[tensorflow学习：tf.strided_slice函数]]></title><link>https://blog.youkuaiyun.com/SilentOB/article/details/96007568</link><guid>https://blog.youkuaiyun.com/SilentOB/article/details/96007568</guid><author>SilentOB</author><pubDate>Mon, 15 Jul 2019 19:34:14 +0800</pubDate><description><![CDATA[关于tf.strided_slice函数tensorflow官方文档介绍链接https://www.tensorflow.org/api_docs/python/tf/strided_slice过于简单，本文使用简短的测试用例补充说明strided_slice的详细用法。首先给出接口定义：


tf.strided_slice(
 input_,
 begin,
 end,...]]></description><category></category></item><item><title><![CDATA[windows强制杀死进程方法]]></title><link>https://blog.youkuaiyun.com/SilentOB/article/details/91874693</link><guid>https://blog.youkuaiyun.com/SilentOB/article/details/91874693</guid><author>SilentOB</author><pubDate>Thu, 13 Jun 2019 16:56:31 +0800</pubDate><description><![CDATA[碰到任务管理器无法关闭的情况使用cmd命令。

1.管理员身份运行cmd；

2.tasklist | findstr “xxx” （xxx为应用程序部分名称）

3.taskkill -PID zzz -F (zzz为tasklist显示的应用程序pid)
...]]></description><category></category></item><item><title><![CDATA[TFLite文件解析及格式转换]]></title><link>https://blog.youkuaiyun.com/SilentOB/article/details/86479442</link><guid>https://blog.youkuaiyun.com/SilentOB/article/details/86479442</guid><author>SilentOB</author><pubDate>Mon, 14 Jan 2019 20:08:57 +0800</pubDate><description><![CDATA[        随着深度学习越来越流行，工业生产不光在PC端应用场景丰富，在移动端也越来越凸显出深度学习的重要性及应用价值。由于嵌入式平台受存储、指令集限制，需要提供更小的网络模型，并且某些DSP平台不支持float指令。tensorflow提供TOCO转换工具能够自动生成量化为U8的TFLite文件。本文将介绍如何解析tflite的网络结构以及权重信息。

一、tflite文件格式

     ...]]></description><category></category></item><item><title><![CDATA[Linux环境gdb调试]]></title><link>https://blog.youkuaiyun.com/SilentOB/article/details/77876875</link><guid>https://blog.youkuaiyun.com/SilentOB/article/details/77876875</guid><author>SilentOB</author><pubDate>Thu, 07 Sep 2017 08:58:54 +0800</pubDate><description><![CDATA[ 

调 试是每个程序员都会面临的问题. 如何提高程序员的调试效率, 更好更快地定位程序中的问题从而加快程序开发的进度, 是大家共同面对的问题. 可能Windows用户顺口就会说出:用VC呗 :-) , 它提供了设置断点, 单步跟踪等的图形界面, 使调试起来直观易用. 但Linux用户可能要生闷气了 O:-) : 难道我们Linux程序员就只能使用原始的调试方法, 在代码中加入printf信息吗?...]]></description><category></category></item><item><title><![CDATA[const char * 、char const *、  char * const 三者的区别]]></title><link>https://blog.youkuaiyun.com/SilentOB/article/details/76994618</link><guid>https://blog.youkuaiyun.com/SilentOB/article/details/76994618</guid><author>SilentOB</author><pubDate>Wed, 09 Aug 2017 15:58:28 +0800</pubDate><description><![CDATA[C/C++ 中关于以下三种定义：

const char *ptr;

char const *ptr;

char * const ptr;

整理三者之间的区别与联系。

一、const char *ptr;

    定义一个指向字符常量的指针，这里，ptr是一个指向 char* 类型的常量，所以不能用ptr来修改所指向的内容，换句话说，*ptr的值为const，不能修改。但是ptr...]]></description><category></category></item><item><title><![CDATA[并行计算openMP 的简单介绍]]></title><link>https://blog.youkuaiyun.com/SilentOB/article/details/75020700</link><guid>https://blog.youkuaiyun.com/SilentOB/article/details/75020700</guid><author>SilentOB</author><pubDate>Wed, 12 Jul 2017 15:49:30 +0800</pubDate><description><![CDATA[最近在看多核编程。简单来说，由于现在电脑CPU多个核心，传统的单线程编程方式难以发挥多核CPU的强大功能，于是多核编程应运而生。多核编程可以认为是对多线程编程做了一定程度的抽象，提供一些简单的API，使得用户不必花费太多精力来了解多线程的底层知识，从而提高编程效率。最近关注的多核编程的工具包括openMP和TBB。按照目前网上的讨论，TBB风头要盖过openMP，比如openCV过去是使用open...]]></description><category></category></item><item><title><![CDATA[关于swap的两种实现的说明]]></title><link>https://blog.youkuaiyun.com/SilentOB/article/details/73608674</link><guid>https://blog.youkuaiyun.com/SilentOB/article/details/73608674</guid><author>SilentOB</author><pubDate>Thu, 22 Jun 2017 17:22:52 +0800</pubDate><description><![CDATA[最近发现大量博客上面关于交换函数的实现，基本上都给出了两种方式，一种是C++函数库已经实现的。另一种用异或实现。




1，最通用的模板交换函数模式：创建临时对象，调用对象的赋值操作符。



void swap(int  &a, int &b) 
{
        int temp ;
        temp =a;
        a = b;]]></description><category></category></item><item><title><![CDATA[C++重载、重写、重定义区别]]></title><link>https://blog.youkuaiyun.com/SilentOB/article/details/73558689</link><guid>https://blog.youkuaiyun.com/SilentOB/article/details/73558689</guid><author>SilentOB</author><pubDate>Thu, 22 Jun 2017 10:01:26 +0800</pubDate><description><![CDATA[一 重载（overload）

概念：

函数有同样的名称，但是参数列表不相同的情形，这样的同名不同参数的函数之间，互相称之为重载函数。

基本条件：


函数名必须相同；
函数参数必须不相同，可以是参数类型或者参数个数不同；
函数返回值可以相同，也可以不相同；





注意：


只能通过不同的参数样式进行重载，例如：不同的参数类型，不同的参数个数，不同]]></description><category></category></item><item><title><![CDATA[debian 下实现LAMP 搭建服务器]]></title><link>https://blog.youkuaiyun.com/SilentOB/article/details/73528882</link><guid>https://blog.youkuaiyun.com/SilentOB/article/details/73528882</guid><author>SilentOB</author><pubDate>Wed, 21 Jun 2017 11:15:47 +0800</pubDate><description><![CDATA[一、安装Apache
 
在安装HTTP Server之前需安装APR  ，APR-util ，  pcre （http://apr.apache.org/）
（1）apr安装
$ tar zxvf apr-1.4.6.tar.gz
$ cd apr-1.4.6/
$ ./configure
$ make
$ sudo make install

（2）安装APR-util（http://apr.]]></description><category></category></item><item><title><![CDATA[C++ BUG]]></title><link>https://blog.youkuaiyun.com/SilentOB/article/details/73277519</link><guid>https://blog.youkuaiyun.com/SilentOB/article/details/73277519</guid><author>SilentOB</author><pubDate>Thu, 15 Jun 2017 11:26:12 +0800</pubDate><description><![CDATA[error1:


int len = points.size();
bitset&lt;len&gt; bs(7);

报告：

the value of 'len' is not usable in a constant expression

解决：bitset模板参数必须声明为const，这样在编译的时候才能实例化该模板。bitset没有提供修改其大小和添加删除元素的接口，故不能进行修改。...]]></description><category></category></item><item><title><![CDATA[VIM高阶用法技巧]]></title><link>https://blog.youkuaiyun.com/SilentOB/article/details/73275402</link><guid>https://blog.youkuaiyun.com/SilentOB/article/details/73275402</guid><author>SilentOB</author><pubDate>Thu, 15 Jun 2017 10:28:58 +0800</pubDate><description><![CDATA[浏览代码

首先，我们先从浏览代码开始。有时候，我们需要看多个文件，所以，传统的做法是，我们开多个tty终端，每个tty里用Vim打开一个文件，然后来回切换。这很没有什么效率。我们希望在一个Vim里打开多个文件，甚至浏览程序目录。

浏览目录的命令很简单：（你也可以直接vim一个目录）

:E


注意，是大写。于是，你会看到下面这样的界面：





这个界面中，你]]></description><category></category></item><item><title><![CDATA[关于谓词函数predicates的介绍]]></title><link>https://blog.youkuaiyun.com/SilentOB/article/details/73187873</link><guid>https://blog.youkuaiyun.com/SilentOB/article/details/73187873</guid><author>SilentOB</author><pubDate>Tue, 13 Jun 2017 16:19:55 +0800</pubDate><description><![CDATA[谓词函数是一个判断式，一个返回bool值的函数或者仿函数。几元就是函数有几个参数，至于定义和使用，函数定义和一般的函数定义一样，仿函数就是写个类，然后重载operator()。使用就是在那些以这种需要返回bool值的函数作参数的函数里用了。


一元谓词函数举例如下：

1，判断给出的string对象的长度是否小于6

bool GT6(const string &s)

{]]></description><category></category></item><item><title><![CDATA[多核环境下绑定进程运行在指定的CPU核上]]></title><link>https://blog.youkuaiyun.com/SilentOB/article/details/73123792</link><guid>https://blog.youkuaiyun.com/SilentOB/article/details/73123792</guid><author>SilentOB</author><pubDate>Mon, 12 Jun 2017 16:33:28 +0800</pubDate><description><![CDATA[最近做相关算法性能测试的时候，要测试单核的性能，故需要事先绑定指定的CPU核号。
      所谓绑核，其实就是设定某个进程/线程与某个CPU核的亲和力（affinity）。设定以后，Linux调度器就会让这个进程/线程只在所绑定的核上面去运行。
但并不是说该进程/线程就独占这个CPU的核，其他的进程/线程还是可以在这个核上面运行的。如果想要实现某个进程/线程独占某个核，就要使用cpuset命]]></description><category></category></item><item><title><![CDATA[ARM NEON 基本指令集介绍]]></title><link>https://blog.youkuaiyun.com/SilentOB/article/details/72984500</link><guid>https://blog.youkuaiyun.com/SilentOB/article/details/72984500</guid><author>SilentOB</author><pubDate>Sat, 10 Jun 2017 14:40:40 +0800</pubDate><description><![CDATA[寄存器

ARMV7架构包含：

16个通用寄存器（32bit），R0-R15
	16个NEON寄存器（128bit），Q0-Q15（同时也可以被视为32个64bit的寄存器，D0-D31）
	
	16个VFP寄存器（32bit），S0-S15

	
	NEON和VFP的区别在于VFP是加速浮点计算的硬件不具备数据并行能力，同时VFP更尽兴双精度浮点数（double）的计算，NEON只有单精度浮点...]]></description><category></category></item><item><title><![CDATA[ARM NEON 编程简单入门1]]></title><link>https://blog.youkuaiyun.com/SilentOB/article/details/72954618</link><guid>https://blog.youkuaiyun.com/SilentOB/article/details/72954618</guid><author>SilentOB</author><pubDate>Fri, 09 Jun 2017 10:49:49 +0800</pubDate><description><![CDATA[NEON简介

NEON是适用于ARM Cortex-A系列处理器的一种128位SIMD(Single Instruction, Multiple Data,单指令、多数据)扩展结构。从智能手机和移动计算

设备到HDTV，它已被公认为是多媒体应用领域中最为优越的处理器之一。它采用专门设计，简化了软件在不同平台之间的移植，为类似DolbyMobile的

密集型多媒体应用提供了低能耗和灵活的加速功...]]></description><category></category></item></channel></rss>