树莓派OS历史版本下载

树莓派系统是基于Debian系统进行的定制,历史版本下载地址为 http://downloads.raspberrypi.org/raspbian/images/

2012-07-15-wheezy-raspbian
2012-08-16-wheezy-raspbian
2012-09-18-wheezy-raspbian
2012-10-28-wheezy-raspbian
2012-12-15-wheezy-raspbian
2012-12-16-wheezy-raspbian
2013-02-09-wheezy-raspbian
2013-05-25-wheezy-raspbian-shrunk
2013-05-25-wheezy-raspbian
2013-07-26-wheezy-raspbian
raspbian-2013-09-16
raspbian-2013-09-27
raspbian-2013-10-07
raspbian-2013-12-24
raspbian-2014-01-09
raspbian-2014-06-22
raspbian-2014-09-12
raspbian-2014-12-25
raspbian-2015-02-02
raspbian-2015-02-17
raspbian-2015-05-07
Debian 7(Wheezy)
raspbian-2015-09-28
raspbian-2015-11-24
raspbian-2016-02-08
raspbian-2016-02-09
raspbian-2016-02-29
raspbian-2016-03-18
raspbian-2016-05-13
raspbian-2016-05-31
raspbian-2016-09-28
raspbian-2016-11-29
raspbian-2017-01-10
raspbian-2017-02-27
raspbian-2017-03-03
raspbian-2017-04-10
raspbian-2017-06-23
raspbian-2017-07-05
Debian 8 (Jessie)
raspbian-2017-08-17
raspbian-2017-09-08
raspbian-2017-12-01
raspbian-2018-03-14
raspbian-2018-04-19
raspbian-2018-06-29
raspbian-2018-10-11
raspbian-2018-11-15
raspbian-2019-04-09
Debian 9 (Stretch)
raspbian-2019-06-24
raspbian-2019-07-12
Debian 10(Buster)

Lite版本下载地址为 http://downloads.raspberrypi.org/raspbian_lite/images/

参考链接


树莓派历史版本下载

macOS Catalina(10.15.1) "git-lfs filter-process: git-lfs: command not found"

在pull远程主分支代码时,出现了如下错误:

git-lfs filter-process: git-lfs: command not found
fatal: The remote end hung up unexpectedly

解决方案

$ brew install git-lfs

参考链接


git错误记录:git-lfs filter-process: git-lfs: command not found

Tensorflow中same padding和valid padding

  • Same Convolution Padding

我之前学习吴恩达老师的课程时,了解到的same padding是指在输入周围填充0,以使卷积操作后输入输出大小相同。而在tensorflow中的same padding却不是这样的。

要理解tensorflow中的same padding是如何操作的,先考虑一维卷积的情况。

ni和no分别表示输入和输出的大小,k为kernel大小,s为stride步长。那么在same padding中,no由ni和s二者确定:no = ceil(ni / s)

比如,假设ni为11,s为2,那么就得到no为6。而s若为1,则输入输出大小相等。

现在已经确定好了输出no的大小,接下来就要确定如何对输入ni进行pad来得到目标输出大小。也就是要找到满足下面公式的pi:

继续阅读Tensorflow中same padding和valid padding

卷积神经网络在ARM-CPU上的推断计算综述

摘要


  深度学习在计算机视觉领域大放异彩,许多在传统方法下无法解决的问题正在被一一攻克。然而,高昂的计算成本也极大地限制了深度学习的使用,在移动端设备、嵌入式设备等计算资源比较拮据的平台上其计算密集的特性尤为突出。本文对现阶段,工业界所使用的深度学习推断阶段的软件操作库、计算框架等,做了充分调研,由底向上勾勒出深度学习推断阶段的技术轮廓。本文主要工作如下:

  1. 总结深度学习推断阶段的主要操作,指出其性能瓶颈所在;
  2. 从软件库层面总结现阶段可用的开源库;
  3. 对比各层次的软件库,做出总结。

深度学习推断的主要操作


  对于大部分的卷积神经网络而言,卷积层是最消耗时间的部分,而全连接层则是参数量最多的部分[2]。 如下图所示[10]为 2012 年获得imagenet冠军的深度神经网络结构Alexnet分别在GPU和CPU进行推断的性能benchmark,由图可以看出,在CPU上卷积层和全连接层占用了95%的计算时间,而在CPU上卷积层和全连接层占用了89%的时间,如何高效地进行卷积层和全连接层的计算成为提升深度学习推断性能的关键点。

继续阅读卷积神经网络在ARM-CPU上的推断计算综述

OpenMediaVault 4.1.26省电设置

目前版本的OpenMediaVault 4.1.26缺乏必要的电源管理,但是对于NAS来说,电源管理是非常必要的,尤其是其会进行7x24小时的连续运行的时候。

当前找到的是tlp,这个工具据说不错,在此试用一段时间看看效果。

$ sudo apt-get update

$ sudo apt-get install tlp

$ sudo tlp start

# 省电的话建议,强制切换到电池模式,启用电池模式的设置
$ sudo tlp bat

$ sudo systemctl enable tlp.service

# 检查服务运行状态
$ sudo tlp-stat -s

# 更详细的配置信息,修改 /etc/default/tlp

参考链接


玩转HTML5 Video视频WebVTT字幕使用样式与制作

一、HTML5 Video视频与WebVTT字幕

HTML5 Video视频支持支持外挂字幕,文件后缀名是`.vtt`,称为WebVTT格式,专门的web字幕格式。使用很简单,用一个`<track>`元素即可,例如:

<video id="video">
    <source src="example.mp4" type="video/mp4">
    <track src="example.vtt" default>
</video>

只要`src`属性地址OK,同时有`default`属性,字幕就会生效。

您可以狠狠地点击这里:HTML5 video视频track加载WebVtt字幕demo

继续阅读玩转HTML5 Video视频WebVTT字幕使用样式与制作

卷积与反卷积、步长(stride)与重叠(overlap)及output的大小

1. 卷积神经网络的基础概念

        卷积神经网络是一种专门用来处理具有类似网络结果的数据的神经网络。至少在网络的一层中使用卷积运算来替代一般的矩阵乘法运算的神经网络。

        最核心的几个思想:稀疏交互、参数共享、等变表示(通俗成为平移不变性)。根本目的说白了就是为了节省运算时间和空间。那接下来看一下是怎么实现的。

1.0 卷积

         用一张图展示一下,卷积的计算。element-wise multiply 然后再相加。

继续阅读卷积与反卷积、步长(stride)与重叠(overlap)及output的大小

在Ubuntu 18.04系统中的Apache Tomcat上部署Apache Archiva

注意: Apache Archiva 2024-02 开始已经停止维护 建议使用 JFrog Artifactory 替代。

目前的`Apache Archiva 2.x`版本是不支持`JDK 11`的,但是`Ubuntu 18.04`系统上使用的`Open JDK 11`是不能正常启动`Apache Archiva 2.x`的。

原因在于`Apache Archiva 2.x`版本使用的`Spring Framework 4.x`版本不能完全支持`JDK 11`。最低需要`Spring Framework 5.1`才算是完整支持。

其实如果系统上其他软件对于JDK没有特殊要求的话,可以安装`Open JDK 8`解决这个问题(可惜`Tomcat 9`依赖`OpenJDK 11`)。

$ sudo apt-get install openjdk-8-jdk

$ sudo apt-get remove --purge openjdk-11-jdk

暂时等待官方发布新版本吧,下面是编译过程,但是一般都编译不通过!

$ git clone https://github.com/apache/archiva.git

$ cd archiva

$ sudo apt install maven

$ mvn clean install

参考链接


树莓派4B使用ARM Compute Library运行AlexNet

# Install Build Tools 
$ pip install scons 

# Reload Environment
$ source ~/.profile

# Clone Compute Library 
$ git clone https://github.com/Arm-software/ComputeLibrary.git 

# or wget https://www.mobibrw.com/wp-content/uploads/2019/10/ComputeLibrary.zip

# Enter ComputeLibrary folder 
$ cd ComputeLibrary  

# Build the library and the examples 
$ scons Werror=1 debug=0 asserts=0 neon=1 opencl=1 examples=1 os=linux arch=armv7a -j4 

# Run on the Raspberry Pi
$ export LD_LIBRARY_PATH=build/ 

# Download AlexNet

# Install unzip
$ sudo apt-get install unzip

# Download the zip file with the AlexNet model, input images and labels
$ wget https://armkeil.blob.core.windows.net/developer/developer/technologies/Machine%20learning%20on%20Arm/Tutorials/Running%20AlexNet%20on%20Pi%20with%20Compute%20Library/compute_library_alexnet.zip

# or wget https://www.mobibrw.com/wp-content/uploads/2019/10/compute_library_alexnet.zip

# Create a new folder
$ mkdir assets_alexnet

# Unzip
$ unzip compute_library_alexnet.zip -d assets_alexnet

$ PATH_ASSETS=./assets_alexnet 

$ ./build/examples/graph_alexnet 0 $PATH_ASSETS  $PATH_ASSETS/go_kart.ppm $PATH_ASSETS/labels.txt

继续阅读树莓派4B使用ARM Compute Library运行AlexNet