
C/C++
sooner高
DeepFaceLab作者, Tensorflow & PyTorch contributor,深度学习小学生
展开
-
(中文详解篇)smallpt: 99行代码完成全局光照Path Tracing
目录0. 什么是SmallPTFeatures1. 光线追踪需要了解知识1.1 什么是全局光照?1.2 渲染方程2. SmallPT代码分析2.1 代码块12.2 代码块22.2.1 主函数第1步: 设置呈像平面2.2.2 主函数第2步: 设置相机位置2.2.3 主函数第3步: 创建图像2.2.4 如何计算radiance?2.3 shading 着色2.3.1 diffuse reflection 漫反射2.3.2 Ideal Specular (Mirror) Reflection 高光反射2.3.3原创 2020-08-24 00:49:46 · 8516 阅读 · 0 评论 -
PyTorch学习笔记(16)——编写你自己的PyTorch kernel(基于PyTorch1.2.0)
在前一阵看过PyTorch官方核心开发者Edward Z, Yang的在纽约举办的PyTorch NYC Meetup的关于PyTorch内部机制的讲解。从通过strides指定逻辑布局,tensor wrapper到autograd机制以及对PyTorch内部最重要的几个基本代码模块的扼要说明,让人受益匪浅。其中,在PyTorch写kernel是一个非常让人兴奋的内容,作为一个contribu...原创 2019-06-25 14:55:15 · 5370 阅读 · 0 评论 -
PyTorch学习笔记(15) ——PyTorch中的contiguous
本文转载自栩风在知乎上的文章《PyTorch中的contiguous》。我觉得很好,特此转载。0. 前言本文讲解了pytorch中contiguous的含义、定义、实现,以及contiguous存在的原因,非contiguous时的解决办法。并对比了numpy中的contiguous。contiguous 本身是形容词,表示连续的,关于 contiguous,PyTorch 提供了is...转载 2019-05-21 23:30:20 · 6989 阅读 · 2 评论 -
PyTorch学习笔记(14) ——PyTorch 1.0 的C++ FrontEnd初体验
在去年12月份,我尝试了一下PyTorch 1.0的C++前端, 当时官方负责PyTorch的C++前端的老哥是: Peter Goldsborough, 当时的C++前端还不够稳定,官方文档提供的demo无法跑通.所以为了避免后面的同学再次入坑. 本部分将会手把手教你如何用PyTorch1.0 跑通C++ Mnist模型的训练~0. PyTorch C++接口哲学PyTorch’s ...原创 2019-02-28 10:30:41 · 2379 阅读 · 5 评论 -
Tensorflow② c++接口加载模型推理单张图片
tensorflow的官网上提供很详细的python教程,也确实很好用。但是,应用软件产品大多用c/c++写的。所以,大部分的应用都是用python来训练模型,得到训练好的模型后. 用c++调用tensorflow模型进行推理。通过收集资料,总结了方法.1. 使用python训练模型,并保存模型a.训练并保存模型sess = tf.Session(config=config) #sess...原创 2018-11-06 18:39:54 · 4415 阅读 · 11 评论 -
空间金字塔池化SPP(Spatial Pyramid Pooling)
前言 何凯明大神于2014年在《Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition》,这篇paper主要的创新点在于提出了空间金字塔池化。这个方法对于目前很多任务非常实用,尤其是现在的神经网络算法叠加的情况下(即前一个神经网络输出的结果是下一个神经网络的输入),很多输出的图片尺寸或者说b...原创 2018-06-24 11:09:14 · 15967 阅读 · 3 评论 -
视频数据处理:解压H.264视频成YUV源文件
首先感谢一下雷神,提供了这么多优质的资源。今天正好有空,使用FFMpeg的API编写如何将H.264的源文件解压成YUV源的过程。主要步骤基本步骤分为如下几步,下面,开始讲述用到哪些API来实现这个程序。 代码组织这里,就不再赘述如何构造一个可以使用的工程了,具体请参考雷神或其它牛人的博客。Video_Decoder.h头文件主要就是包含了需要用到的MM原创 2017-11-13 14:23:59 · 1610 阅读 · 0 评论 -
Python——struct模块简介
最近在做视频解封装的时候,遇到了struct这个模块的使用,查阅了一些文档,现在总结一下。了解c/c++的人,一定会知道struct结构体在其中的作用:它定义了一种结构(可以理解为值类型),便于不同目的下使用时,封装新的数据类型。当传递一些复杂的数据结构的时候,需要有一种机制将某些特定的结构体类型打包成二进制流的字符串然后再网络传输,而接收端也应该可以通过某种机制进行解包还原出原始的结构体数据原创 2018-01-18 15:43:25 · 2136 阅读 · 0 评论 -
基于C++实现带parser功能的计算器
前一阵子复习STL的时候,结合轮子哥的教程做了一下基于Stack的带parser功能的计算器。具体功能就是输入带括号的四则运算,比如”(1+2)*3+2”,程序可以自动parser,并得出最后的结果为11。现在直接贴代码,具体的注释都在里面~ calculator_parser的github地址#include #include #include #include using原创 2018-01-04 16:33:19 · 1186 阅读 · 0 评论 -
Ubuntu16.04 python3 caffe安装
前言 本文旨在记录在Ubuntu16.04和python3.5基础上安装caffe的问题。安装中会遇到一些问题,在每一步都有相应的解决方案。下面以CPU版本为例进行说明。① 安装依赖注意:这里如果没装git的同学,请先去安装一个git。sudo apt-get install git下面是依赖文件:# python3 modules (numpy, protobuf, skimage)sud原创 2017-09-30 11:39:26 · 7683 阅读 · 6 评论 -
C++ STL几个容器的底层实现
C++ STL 的实现:1.vector 底层数据结构为数组 ,支持快速随机访问2.list 底层数据结构为双向链表,支持快速增删3.deque 底层数据结构为一个中央控制器和多个缓冲区,详细见STL源码剖析P146,支持首尾(中间不能)快速增删,也支持随机访问deque是一个双端队列(double-ended转载 2017-09-23 10:51:17 · 1230 阅读 · 0 评论