深度学习与TensorFlow2
深度学习与TensorFlow2
环境(版本需要匹配):
TensorFlow:TensorFlow2.0 GPU版本
Anaconda:4.8.1(conda -V,conda -list,Python 3.7 version),链接:https://www.anaconda.com/distribution/#download-section
CUDA:V10.0.130(nvcc -V),链接:https://developer.nvidia.com/cuda-toolkit-archive
cuDNN:,链接:https://developer.nvidia.com/rdp/cudnn-archive
一、TensorFlow2基础操作
TensorFlow中的数据载体叫做张量(Tensor)对象,即tf.Tensor,对应不同的类型,能够存储大量的连续的数据。同时所有的运算操作(Operation,简称 OP)也都是基于张量对象进行的
什么是Tensor:
Tensor是一个比较广泛的数据
标量(scalar):1.1、2.2等准确的数据类型(维度dim=0)
向 ...
基于STM32L476的IAP升级
基于STM32L476的IAP升级
一、原理
基本概念:
ICP/ISP: 即在线编程(in-circuit programming)有时也叫系统编程(In System Programming)在,用于通过JTAG、SWD协议或引导加载程序(BootLoader)将用户应用程序加载到微控制器中,从而更新flash的全部内容。 ICP提供了快速有效的设计迭代,并消除了不必要的封装处理或设备插槽。
IAP: 即应用内编程(in-application programming)。与ICP方法相比,应用内编程(IAP)可以使用微控制器支持的任何通信接口(I / O,USB,CAN,UART,I2C,SPI等)将编程数据下载到存储器中。当应用程序(即IAP程序)运行时,用户能够对Flash存储器进行重新编程。 但是,应用程序(即IAP程序)的一部分必须事先通过ICP烧录在flash中。如果在flash操作期间发生设备复位,则不能保证flash中的内容。
发生复位时,程序计数器(PC指针)将设置为IAP驱动程序的地址。它应该是一个简洁的代码,用于检查特定状态,例如,按下了组合键。满足此条件后 ...
Xmanager远程Ubuntu系统图像化界面
Xmanager远程Ubuntu系统图像化界面
一、安装Xmanager
二、ubuntu配置
安装软件ightdm
12sudo apt install gdmsudo apt install lightdm
配置lightdm
新建lightdm.conf配置文件
1sudo vi /etc/lightdm/lightdm.conf
内容填写入下:
123456[SeatDefaults]greeter-show-manual-login=truexserver-allow-tcp=true[XDMCPServer]Enabled=truePort=177
新建gdm.schemas配置文件:
1sudo vi /etc/lightdm/gdm.schemas
内容填写如下:
12345<schema><key>xdmcp/Enable</key><signature>b</signature><default>true</default></schema>
安装xubunt
12sud ...
Go语言
GO语言
该笔记是本人学习《Go语言入门经典》和所记录的,便于以后查阅
零、前言
go中的编码统一为utf-8,其中ascii的字符占一字节,汉字占三字节
GO语言中导入的包或声明的变量 若没有使用则会报错
12//格式化源码gofmt -w main.go
格式:
123456789//正确:main{}//错误:main{}
标识符相关:
下划线“_”本身在Go中是一个特殊的标识符,称为空标识符。可以代表任何其它的标识符,但是它对应的值会被忽略(比如:忽略某个返回值)。所以仅能被作为占位符使用,不能作为标识符使用
保留关键字(注意int、float32等均没有在这里边,不能使用这些作为命名):
预定义标识符:
尽量保持:包名和该文件所在目录的名字保持一致
首字母大写共有的,首字母小写是私有的(没有public、private等关键字)
运算符相关:
%运算的本质:$ a%b=a-a/b*b $
自增自减只能独立使用,不能和别的语句组合使用,有且仅有i++和i--
没有三目运算符
逻辑运算符:&&、||、!
位运算符:&a ...
NanoPi_Neo_Core底层开发
NanoPi Neo Core底层开发
一、编译下载镜像
各个部分编译后的文件都在对应的文件夹中,如编译friendlycore-xenial_4.14_armhf系统,对应的各个镜像就都在friendlycore-xenial_4.14_armhf文件夹中
最后生成的img文件会在out文件夹中
1. 编译
1.1编译uboot
1UBOOT_SRC=../UBOOT/u-boot-sunxi-v2017.x ./build-uboot.sh friendlywrt_4.14_armhf
1.2编译Linux内核
1KERNEL_SRC=../LINUX/linux-sunxi-4.14.y ./build-kernel.sh friendlycore-xenial_4.14_armhf
编译内核时会自动编译设备树,如果想重新单独编译设备树,则有:
单独编译设备树
1234make distcleantouch .scmversionmake ARCH=arm sunxi_defconfigmake dtbs ARCH=arm CROSS_COMPILE=arm-linux- -j8 ...
LiCheePi_Zero底层开发
LiCheePi Zero底层开发
各种文件
烧录工具:sunxi-tools-spi-rebase.zip
根文件系统:buildroot-2019.08.tar.bz2
交叉编译器:gcc-linaro-6.3.1-2017.02-x86_64_arm-linux-gnueabihf.tar.xz
Uboot:u-boot-3s-current.zip
spi nor flash启动:u-boot-3s-spi-experimental.zip
主线Linux内核:linux-zero-4.10.y.zip、linux-zero-4.13.y.zip
BSP内核:v3s_lichee.zip( camdriod ,需要从中剥离出内核)
一、编译下载镜像
1. 编译及相关配置
1.1编译uboot
123456#480x272LCD:LicheePi_Zero_480x272LCD_defconfig#800x480LCD:LicheePi_Zero_800x480LCD_defconfig#make ARCH=arm CROSS_COMPILE=arm-linux-gnuea ...
设备树
设备树
内核相关文档:
Documentation/devicetree/bindings/
相关约定如下:
dts:device tree source,设备树源文件
dtb:device tree blob,设备树二进制文件, 由dts编译得来
dtc:设备树编译工具
blob:binary large object
一、设备树的规范(dts和dtb)
1. DTS格式
参考文档:官方文档
DTS文件布局(layout)
123456/dts-v1/;//设备树版本[memory reservations] // 保留该处的内存(一般这里就是存放设备树文件的地方),内核不会使用该处内存,格式为: /memreserve/ <address> <length>;//address和length均为64位,如:/memreserve/ 0x33f00000 0x100000/ { [property definitions] [child nodes]};
相关规定:
一般来说一些公共部分会组合起来写成.dtsi文件 ...
VSC插件之markdownlint规则详细介绍
VSC插件之markdownlint规则详细介绍
本文主要参考markdownlint的rules文档,对每一个规则都进行了说明,指明了一些规则中可以设置的参数,便于用户设置相应的规则。
MD001 - Heading levels should only increment by one level at a time
标题级数每次只能扩大1, 也就是不能隔级创建标题(从1级到6级的顺序)
MD002 - First heading should be a top level heading
文档的第一个标题必须是最高级的标题(标题等级1级到6级逐渐降低)
参数:
“level”:指定最高级标题的级数,默认是1
MD003 - Heading style
整篇文档要采用一致的标题格式
参数:
“style”:字符串,指定文档标题的格式,有(“consistent”, “atx”, “atx_closed”, “setext”, “setext_with_atx”, “setext_with_atx_closed”)五种,默认是"consistent",也就是整篇 ...
git
GIT
参考链接:ProGit(中文版)、廖雪峰Git教程、Learn Git Branching。
一、SVN与Git的最主要的区别
说起git自然想到SVN,我刚接触到的版本控制工具是SVN,SVN是集中式版本控制系统,版本库是集中放在中央服务器的,干活的时候,先要从中央服务器哪里得到最新的版本,干完活后,需要把自己做完的活推送到中央服务器。中央服务器就好比是一个图库,你要改一本书,必须先从图库借出来,然后回到家自己改,改完了,再放回图库。集中式版本控制系统是必须联网才能工作,如果在局域网还可以,带宽够大,速度够快,如果在互联网下,如果网速慢的话,就耽误事了。
Git是分布式版本控制系统,它没有中央服务器的,每个人的电脑就是一个完整的版本库,工作的时候就不需要联网了,因为版本都是在自己的电脑上。既然每个人的电脑都有一个完整的版本库,那多个人如何协作呢?比如说自己在电脑上改了文件A,其他人也在电脑上改了文件A,这时,你们两之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。
和集中式版本控制系统相比,分布式版本控制系统的安全性要高很多,因为每个人电脑里都有完整的版本库 ...
hexo史上最全搭建教程
hexo史上最全搭建教程
现在市面上的博客很多,如CSDN,博客园,简书等平台,可以直接在上面发表,用户交互做的好,写的文章百度也能搜索的到。缺点是比较不自由,会受到平台的各种限制和恶心的广告。
而自己购买域名和服务器,搭建博客的成本实在是太高了,不光是说这些购买成本,单单是花力气去自己搭这么一个网站,还要定期的维护它,对于我们大多数人来说,实在是没有这样的精力和时间。
那么就有第三种选择,直接在github page平台上托管我们的博客。这样就可以安心的来写作,又不需要定期维护,而且hexo作为一个快速简洁的博客框架,用它来搭建博客真的非常容易。
Hexo简介
Hexo是一款基于Node.js的静态博客框架,依赖少易于安装使用,可以方便的生成静态网页托管在GitHub和Coding上,是搭建博客的首选框架。大家可以进入hexo官网进行详细查看,因为Hexo的创建者是台湾人,对中文的支持很友好,可以选择中文进行查看。
教程分三个部分,
第一部分:hexo的初级搭建还有部署到github page上,以及个人域名的绑定。
第二部分:hexo的基本配置,更换主题,实现多终端工作,以及在c ...