以安装PyTorch为例说明Anaconda在Windows/Linux上的使用

在Windows10上配置完MXNet 1.3.0后,再配置PyTorch 1.0时,发现两者需要依赖的NumPy版本不一致,之前是通过pip安装NumPy,根据pip的版本不同,会安装不同版本的NumPy,使用起来很不方便,而且MXNet和PyTorch依赖的Python版本也可能不同,这里使用...

2019-01-10 09:17:29

阅读数:95

评论数:0

提高C++性能的编程技术笔记:编码优化+测试代码

缓存:在现代处理器中,缓存经常与处理器中的数据缓存和指令缓存联系在一起。缓存主要用来存储使用频繁而且代价高昂的计算结果,这样就可以避免对这些结果的重复计算。如,循环内对常量表达式求值是一种常见的低性能问题。 预先计算:预先计算和缓存联系紧密。当缓存某个计算的结果时,需要付出的代价是在对性能有重大...

2019-01-06 16:34:24

阅读数:324

评论数:1

提高C++性能的编程技术笔记:引用计数+测试代码

引用计数(reference counting):基本思想是将销毁对象的职责从客户端代码转移到对象本身。对象跟踪记录自身当前被引用的数目,在引用计数达到零时自行销毁。换句话说,对象不再被使用时自行销毁。 引用计数和执行速度之间的关系是与上下文紧密关联的。该关系取决于以下几个因素: (1). 目...

2019-01-05 17:41:25

阅读数:164

评论数:1

提高C++性能的编程技术笔记:标准模板库+测试代码

标准模板库(Standard Template Library, STL)是容器和通用算法的强效组合。 渐近复杂度:算法的渐近复杂度是对算法性能的近似估计。它是算法集到特定性能标准集的映射。如果需要对包含N个整数的向量的所有元素求和,那么每个整数必须且仅需检查一次,因此该算法的复杂度约为N,我们...

2018-12-31 16:25:02

阅读数:108

评论数:0

Ubuntu下使用CMake编译OpenSSL源码操作步骤(C语言)

OpenSSL的版本为1.0.1g,在ubuntu下通过CMake仅编译c代码不包括汇编代码,脚本内容如下: build.sh内容: #! /bin/bash real_path=$(realpath $0) dir_name=`dirname "${real_path}...

2018-12-30 13:47:24

阅读数:97

评论数:0

Ubuntu 14.04上使用CMake编译MXNet源码操作步骤(Python)

MXNet源码版本号为1.3.0,其它依赖库的版本号可参考:https://blog.csdn.net/fengbingchun/article/details/84997490 。            为了通过编译源码支持python接口,这里在 https://blog.csdn.net/...

2018-12-27 12:27:38

阅读数:76

评论数:0

HTTP解析库http-parser简介及使用

http-parser是一个用C编写的HTTP消息解析器,可以解析请求和响应,被设计用于高性能HTTP应用程序。它不会进行任何系统调用及内存分配,它不会缓冲数据,它可以被随时中断。根据你的体系结构,每个消息流只需要大约40个字节的数据(在每个连接的web服务器中。它的源码在https://gith...

2018-12-23 18:25:21

阅读数:168

评论数:0

base64开源库介绍及使用

网上有一些开源的base64编解码库的实现,下面介绍几个: cppcodec是一个仅包括头文件的C++11库,用于编解码RFC 4648中指定的base64, base64url, base32, base32hex等,它的License为MIT,源码在https://github.com/tp...

2018-12-22 22:17:36

阅读数:175

评论数:0

HTTPS协议简介

HTTPS(HyperText Transfer Protocol Secure, 超文本传输安全协议):是一种透过计算机网络进行安全通信的传输协议。HTTPS经由HTTP进行通信,但利用SSL/TLS来加密数据包。HTTPS开发的主要目的,是提供对网站服务器的身份认证,保护交换数据的隐私与完整性...

2018-12-22 15:48:11

阅读数:117

评论数:0

Ubuntu 14.04上使用CMake编译MXNet源码操作步骤(C++)

MXNet源码版本号为1.3.0,其它依赖库的版本号可参考:https://blog.csdn.net/fengbingchun/article/details/84997490 build.sh脚本内容为: #! /bin/bash real_path=$(realpath $0) di...

2018-12-21 15:39:23

阅读数:90

评论数:0

Windows10上编译MXNet源码操作步骤(Python)

1. 按照https://blog.csdn.net/fengbingchun/article/details/84997490  中操作步骤首先在Windows上通过VS2017编译MXNet源代码; 2. 从  https://mxnet.incubator.apache.org/insta...

2018-12-17 15:47:13

阅读数:120

评论数:0

HTTP协议简介

HTTP(HyperText Transfer Protocol, 超文本传输协议):是一种用于分布式、协作式和超媒体信息系统的应用层协议。HTTP是万维网的数据通信的基础。 设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。通过HTTP或者HTTPS协议请求的资源由统一资源标识...

2018-12-16 18:38:52

阅读数:104

评论数:0

提高C++性能的编程技术笔记:内联+测试代码

内联类似于宏,在调用方法内部展开被调用方法,以此来代替方法的调用。一般来说表达内联意图的方式有两种:一种是在定义方法时添加内联保留字的前缀;另一种是在类的头部声明中定义方法。 虽然内联方法的调用方式和普通方法相同,但其编译过程却相差甚远。由于内联方法的代码必须内联展开,这就要求调用内联方法的代码...

2018-12-16 12:06:22

阅读数:1874

评论数:1

Base64简介

Base64是一种基于64个可打印字符来表示二进制数据的表示方法。由于26=64,所以每6个比特为一个单元,对应某个可打印字符。3个字节有24个比特,对应于4个Base64单元,即3个字节可由4个可打印字符来表示。它可用来作为电子邮件的传输编码。在Base64中可打印字符包括字母A~Z、a~z、数...

2018-12-15 17:38:56

阅读数:99

评论数:0

Windows10上使用VS2017编译MXNet源码操作步骤(C++)

MXNet是一种开源的深度学习框架,核心代码是由C++实现。MXNet官网推荐使用VS2015或VS2017编译,因为源码中使用了一些C++14的特性,VS2013是不支持的。这里通过VS2017编译,步骤如下: 1. 编译OpenCV,版本为3.4.2,可参考 https://blog.csd...

2018-12-14 09:11:51

阅读数:162

评论数:0

MXNet中依赖库介绍及简单使用

MXNet是一种开源的深度学习框架,核心代码是由C++实现,在编译源码的过程中,它需要依赖其它几种开源库,这里对MXNet依赖的开源库进行简单的说明: 1. OpenBLAS:全称为Open Basic Linear Algebra Subprograms,是开源的基本线性代数子程序库,是一个优...

2018-12-13 09:08:51

阅读数:135

评论数:0

非对称加密算法RSA公钥私钥的模数和指数提取方法

生成非对称加密算法RSA公钥、私钥的方法: 1. 通过OpenSSL库生成,可参考  https://github.com/fengbingchun/OpenSSL_Test/blob/master/demo/OpenSSL_Test/funset.cpp  中的Generate_RSA_Key...

2018-12-12 15:19:44

阅读数:124

评论数:0

代码覆盖测试工具Kcov简介及使用

Kcov是一个代码覆盖测试工具,最初基于Bcov,它可在FreeBSD、Linux、OSX系统中使用,支持的语言包括编译语言(compiled languages)、Python和Bash。与Bcov一样,Kcov对编译的程序使用DWARF调试信息,以便无需特殊编译器开关即可收集覆盖信息。注:测试...

2018-12-03 21:31:48

阅读数:228

评论数:8

提高C++性能的编程技术笔记:多线程内存池+测试代码

为了使多个线程并发地分配和释放内存,必须在分配器方法中添加互斥锁。 全局内存管理器(通过new()和delete()实现)是通用的,因此它的开销也非常大。 因为单线程内存管理器要比多线程内存管理器快的多,所以如果要分配的大多数内存块限于单线程中使用,那么可以显著提升性能。 如果开发了一套有效...

2018-11-28 21:16:28

阅读数:153

评论数:0

提高C++性能的编程技术笔记:单线程内存池+测试代码

频繁地分配和回收内存会严重地降低程序的性能。性能降低的原因在于默认的内存管理是通用的。应用程序可能会以某种特定的方式使用内存,并且为不需要的功能付出性能上的代价。通过开发专用的内存管理器可以解决这个问题。对专用内存管理器的设计可以从多个角度考虑。我们至少可以想到两个方面:大小和并发。 从大小的角...

2018-11-25 17:06:16

阅读数:299

评论数:3

提示
确定要删除当前文章?
取消 删除