开源深度学习库汇总:
- mxnet 亚马逊主推
- caffe FACEBOOK主推
- tensorflow GOOGLE
- CNTK 微软
- Theano
- Torch
低层库
调用库 |
mxnet |
caffe |
tf |
cntk |
theano |
torch |
blas |
y |
y |
|
|
|
y |
opencv |
y |
y |
|
|
|
|
cuda |
y |
y |
|
|
|
|
opencl |
|
y |
|
|
|
|
LAPACK |
|
|
|
|
|
y |
FFTW |
|
y |
|
|
|
y |
caffe
math_functions.cu gpu blas
otherwise using blas.
opencl –> greentea –>greentea_math_functions.cpp
threshold(Image : Region : MinGray, MaxGray : )
图像的GRAY THRESHOLD. 从MIN 到MAX的像素点留下来 O(A)
* image 输入图像
* region 输出图像
* mingray GRAY 最小值
* maxgray GRAY 最大值
difference(Region, Sub : RegionDifference : : )
减法运算
* REGION 原图
* sub SUB图
* RegionDifference 输出图
阅读此文
编译过程
用默认配置编译.
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| git clone --depth=1 https://github.com/raspberrypi/linux KERNEL=kernel make ARCH=arm CROSS_COMPILE=../tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin/arm-linux-gnueabihf- bcm2709_defconfig make ARCH=arm CROSS_COMPILE=../tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin/arm-linux-gnueabihf- -j4 zImage modules dtbs sudo make ARCH=arm CROSS_COMPILE=../tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin/arm-linux-gnueabihf- INSTALL_MOD_PATH=mnt/ext4 modules_install sudo cp arch/arm/boot/zImage mnt/fat32/$KERNEL.img sudo cp arch/arm/boot/dts/*.dtb mnt/fat32/ sudo cp arch/arm/boot/dts/overlays/*.dtb* mnt/fat32/overlays/ sudo cp arch/arm/boot/dts/overlays/README mnt/fat32/overlays/
|
阅读此文
MAKEFILE
内核配置完成后,在顶层目录中执行“#make uImage”便开始编译内核。但是,uImage却不是在顶层Makefile中定义,而是在arch/$(ARCH)/Makefile中定义。
顶层Makefile Line 452:
include $(srctree)/arch/$(SRCARCH)/Makefile
其中srctree为源码绝对路径,
即该变量等于架构名称,我们以arm为例进行说明。
arch/arm/Makefile Line 230:
zImage Image xipImage bootpImage uImage: vmlinux
可见uImage依赖于vmlinux,要先生成vmlinux,然后执行下边这条指令完成编译。
arch/arm/Makefile Line 231:
$(Q)$(MAKE) $(build)=$(boot) MACHINE=$(MACHINE) $(boot)/$@
Q的定义:选择静态编译与否(是否打印编译信息)
MAKE: 系统环境变量,值为make
build: 值为“-f scripts/Makefile.build obj=”实际上就是调用子Makefile–scripts/Makefile.build,然后传递参数目标文件夹。
Kbuild.include被顶层Makefile所包含
源代码定位
配置
/arch/arm/Kconfig 定义了自编译内核配置文件
/arch/arm/configs 和上面的一起.定义不同的CHIP的配置(其实就是定义上面哪些配置要打开. 所以重点还是在Kconfig)
在Kconfig的1080行开始,定义了 source “arch/arm/mach-at91/Kconfig” 也就是不同的芯片会调用各自目录下的Kconfig
通过配置找代码
在MAKEFILE里找到对应配置的代码
plat-$(CONFIG_PLAT_SUNXI) := sunxi
对应的就是plat-sunxi
有的时候对应的源代码很难找. 只能用GREP来了.
比如CONFIG_CSI_OV7670 ,处理它的MAKEFILE在 drivers\media\video\sun4icsi\device\MAKEFILE
本文不是叫大家怎么做FreeBSD内核,做内核太简单了,不管是Linux和Unix。
在网上找了好久,一点可用的文章都没有找到,FreeBSD的官网的文章也没有给出说法,只能自己在/usr/src和/usr/src/sys和/usr/src/sys/conf下面疯狂的grep,找文件,找引用,才有了自己的一些理解。
先说说Linux的内核文件的编译关联吧,Linux的每个文件的编译和是 kconfig配置关联在一起的,kconfig在经过make menuconfig之后,得到一个.config文件,然后每个文件夹下面的Makefile,会check这个全局的.config文件,来决定哪些 文件该编译,哪些不用编译。多说无益,参考代码即可。
FreeBSD的做法有些不一样了,Linux把哪些文件要编译分散到了每个文件夹,然后check Makefile。FreeBSD是做两个总的文件,决定哪些文件该编译哪些不该,这两个文件分别是这个路径下:
ztz0223@BTazuo:/usr/src/sys/conf % pwd
/usr/src/sys/conf
的两个文件:files,files.i386
阅读此文
什么是TR(True Range)
TR = max(H-L, H-PDC, PDC-L);
H high
L low
PDC last close. REF(c,1)
ATR (average True Range)
ATR = ((T-1)*PDN +TR)/T
T=average days
PDN = last ATR ==> REF(ATR,1)
风险承受率
比如1% 设为R
总资金 100000 设为M
承受亏损量为: N=M*R
头寸为: M*R/ATRV 做为一个UNIT
ATRV为资金波动: 比如股市. 1手100股,假设股票价格为15. 一天的震浮为10% 也就是0.1, ATRV=0.1 100 15 = 150
头寸为: 100000*0.01/150 = 6.7手
如果亏损:
也就是6.7手 .总资金为 10050 元
回撤震动10%: 150.1 = 1.5元 /手
亏损量为: 1.5 6.7 * 100 = 1005元
如果盈利:
以0.5个UNIT增加
进场
10日线上穿20日线. 以1个UNIT进场.
加仓
如果上涨了0.5ATR 增加1个UNIT 不建议加仓超过4次. 其实就是每盈利500, 增加 6.7手
止损
如果亏损超过2UNIT 止损. 止损随着加减仓, 动态修正的. 亏损2000 止损.
止盈
10日下穿20日
期货
假设价格为3000 ATR为1500 也就是150个点. 这样的话. 一天浮动为0.5 ATRV = 0.53000 = 1500
资金6W 容忍亏损0.05 也就是3000
头寸为: 600000.05/1500 = 2手
加仓为: 每上涨75个点, 加一次. 2手.
如果全加完: 4*2 = 8手. 占资金为 24000以上.
代码位置
执行 sudo apt-get install linux-source 才会获取到源代码. 否则只有HEADER文件.
执行完安装后. 代码依然会在/usr/src下 位置和BSD是一样的.
也可以从GITHUB下载. 比如要编译特定的系统的话.
阅读此文
CuraEngine
这是一个3D打印切片和路经规划库.
The slicing process follows the following global steps:
- Load 3D model
- Analize and fix 3D model
- Slice 3D model into 2D layers
- Build LayerParts from sliced layers
- Generate Insets
- Generate up/down skins areas
- Generate sparse infill areas
- Generate GCode for each layer
阅读此文
重点要关注GAP, GATT。
主要针对什么是Characteristics
以下信息都可以由MASTER CONTROL PANEL googleplay读出来
GAP和GATT的差别
GAP: 通用访问协议(Generic Attribute Profile).
官方说明
用于广播(advertising)的协议.
包含信息:
- RSSI
- Address
- Address Type (short or long)
- Advertising Data:
- ShortenedLocalName
- Flags (discoverable? can connent?)
- UUID
- ManufacturerSpecificData
阅读此文