Windows踩坑记录
error MSB6006: “cmd.exe”已退出,代码为 3。完整报错内容:
1C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\VC\VCTargets\Microsoft.CppCommon.targets(209,5): error MSB6006: “cmd.exe”已退出,代码为 3。
LINK : fatal error C1007: 无法识别的标志“-Ot”(在“p2”中)
Ubuntu16.04安装Python3.6踩坑记录
Ubuntu16.04 默认安装的Pyhon3版本为3.5
第一种方法使用Ubuntu的 PPA(Personal Package Archives个人软件包存档),实质是更改source.list进行软件的更新。
升级方式简便,只需3步(ps:亲测没有成功)。
添加仓库1sudo add-apt-repository ppa:jonathonf/python-3.6
若添加失败,则
1sudo apt-get install python-software-properties software-properties-common
更新软件源list1sudo apt-get update
安装Python3.61sudo apt-get install python3.6
第二种方法下载源码包,编译安装。
安装依赖1sudo apt-get install -y wget make gcc
下载源码并编译123456sudo wget https://www.python.org/ftp/python/3.6.5/Python-3.6.5.tgzsudo tar -x ...
Pybind11 使用记录
简介PyBind11 的主要目的是将已有的C++代码接口暴露给Python去调用。
使用者:
onnxruntime (一个用于ONNX格式的神经网络模型推理的引擎)
pytorch (一个开源的Python机器学习库)
环境配置macOS123# python3.7brew install python3python3 -m pip install pybind11
下载其他python版本:官方下载
Ubuntu
系统版本:18.04
1sudo apt-get -y install python3 python3-dev python3-pip
CentOS
系统版本:7.5
12
Win官方下载
设置环境变量:
Q&Afatal error: ‘Python.h’ file not found12345# centosyum install python3-devel # 将会安装至 /usr/include# ubuntuecho "export C_INCLUDE_PATH=${C_INCLUDE_PATH}:/usr/includ ...
CMake 常用操作记录
常用命令指定目标属性: set_target_properties123add_library(example ${SOURCE_FILES})# 修改目标前缀 => example.soset_target_properties(example PROPERTIES PREFIX "")
CMakeLists.txt查找三方库,使用之 Dependencies.cmake
1234567891011121314151617# ---[ pybind11find_package(pybind11 CONFIG)if(NOT pybind11_FOUND) find_package(pybind11)endif()if(pybind11_FOUND) message(STATUS "System pybind11 found")else() message(STATUS "Using third_party/pybind11.") set(pybind11_INCLUDE_DIRS ${CMAKE_CURRENT_LIST_DIR ...
Docker 常用操作记录
常用命令查看本地镜像列表1docker images
Dockerfile
Python 常用操作记录
Python 基础
Python 风格规范——Google开源项目风格指南
操作符优先级
从上往下,优先级依次提高。官方文档
全局变量的范围覆盖在函数内部,如果 局部变量 和 全局变量同名,使用的是 局部变量。
如果在函数内部要对全局变量进行重新赋值,需通过 global 声明。
示例
1234567upChars = '零壹贰叁肆伍陆柒捌玖'def change(): global upChars upChars = '零一二三四五六七八九'change()print(upChars)
局部变量的生命周期变量 从被创建到被系统回收 的过程,就是其生命周期。
局部变量只有在函数被执行时才会被创建。
函数执行结束后局部变量才会被系统回收。
1234567def file_copy(src_path, dst_path): with open(src_path, 'r') as f: content = f.read() with open(dst_path, 'w') as f: f.write(content)file_c ...
了解的一些开源资料
AI平台相关alibaba/MNN
MNN is a lightweight deep neural network inference engine.
MNN是一个轻量级的深度神经网络推理引擎,在端侧加载深度神经网络模型进行推理预测。目前,MNN已经在阿里巴巴的手机淘宝、手机天猫、优酷等20多个App中使用,覆盖直播、短视频、搜索推荐、商品图像搜索、互动营销、权益发放、安全风控等场景。此外,IoT等场景下也有若干应用。
相关资料
中文文档(语雀)
armnn
Arm NN is a key component of the machine learning platform
ArmNN是Arm机构开源的基于arm嵌入式设备的inference框架,在Arm Cortex-A CPUs、Arm Mali GPUs、Arm Machine Learning processor都可以达到很高的加速效果。
相关资料
被低估的ArmNN(一)如何编译
ComputeLibrary
BVLC/caffe
Caffe: a fast open framework for dee ...
Linux 解压缩文件示例
压缩将目录里所有jpg文件打包成jpg.tar1tar –cvf jpg.tar *.jpg
将目录里所有jpg文件打包成jpg.tar后,并且将其用gzip压缩,生成一个gzip压缩过的包1tar –czf jpg.tar.gz *.jpg
将目录里所有jpg文件打包成jpg.tar后,并且将其用bzip2压缩,生成一个bzip2压缩过的包1tar –cjf jpg.tar.bz2 *.jpg
将目录里所有jpg文件打包成jpg.tar后,并且将其用compress压缩,生成一个umcompress压缩过的包1tar –cZf jpg.tar.Z *.jpg
rar格式的压缩,需要先下载 rar for Linux1rar a jpg.rar *.jpg
zip格式的压缩,需要先下载 zip for linux1zip jpg.zip *.jpg
解压解压 tar包1tar –xvf file.tar
解压 tar.gz1tar -xzvf file.tar.gz
解压 tar.bz21tar -xjvf file.tar.bz2
解压 tar.Z1tar –xZv ...
python-graphviz 绘制神经网络结构图
概述
Graphviz 是一个绘图工具集, 可以用 The DOT Language 的 DSL 来绘图。用 dot 写好脚本之后,使用不同的布局引擎来对脚本解析,生成图片,支持 PNG、PDF 等格式。Graphviz 有好几个布局引擎,一般使用的有dot (有向图) 和 circo(环形布局),其他的较少使用。
Graphviz 包含 3 种图形元素,图(graph), 节点(node)和边(edge)。每个元素都可以具有各自的属性,用来定义字体,样式,颜色,形状等。
安装
安装graphviz程序
12345# Macbrew install graphviz# ubuntusudo apt-get install graphviz
或者到官网下载页面中, 找到对应平台的安装包安装。
安装python-graphviz模块
1sudo pip install graphviz
基本用法通过实例化对象创建图形1234567891011121314from graphviz import Digraphdot = Digraph(comment=' ...
关于BETA,RC,ALPHA,GA等版本号的意义
Alpha 内部测试版本。一般不向外部发布,会有很多Bug。除非你也是测试人员,否则不建议使用。是希腊字母的第一位,表示最初级的版本,alpha 就是α,beta 就是β ,alpha 版就是比beta还早的测试版,一般都是内部测试的版本。
Beta 该版本相对于α版已有了很大的改进,消除了严重的错误,但还是存在着一缺陷,需要经过多次测试来进一步消除。这个阶段的版本会一直加入新的功能。
RC Release Candidate的缩写, 预发布版本。和Beta版最大的差别在于Beta阶段会一直加入新的功能,但是到了RC版本,几乎就不会加入新的功能了,而主要着重于除错! RC版本是最终发放给用户的最接近正式版的版本,发行后改正bug就是正式版了,就是正式版之前的最后一个测试版。
GA General Availability的缩写, 官方开始推荐广泛使用。
Release 最终发布版本。在前面版本的一系列测试版之后,终归会有一个正式版本,是最终交付用户使用的一个版本。该版本有时也称为标准版。一般情况下,Release不会以单词形式出现在软件封面 ...