达达的马蹄

Linux 系统状态日志记录

初衷 就是服务器今天早上意外关机了.查看系统日志也没有查找到具体的原因.猜测可能是温度过过高导致的自动关机.结果日志里并没有记录 CPU、GPU 或者硬盘的温度之类的信息.看来还是要自己动手,丰衣足食. CPU 温度 比较常用的就是 lm_sensors 这个包了.不过为了方便将 CPU 温度记录到系统日志文件中,我们需要安装的是 sensord 这个包.有些发行版将两者打包到了一起,也有一些是将他们分开,但是安装 sensord 也会同时安装 lm_sensors 的.对于 Ubuntu/Debian 系统,直接安装即可: sudo apt install sensord 然后运行一下: sudo sensord sensord 就会每隔一段时间将 CPU 温度写入到系统日志文件里,一般是 /var/log/syslog 里. 硬盘温度 这个可以安装 hddtemp 包,安装好之后运行一下: sudo hddtemp --syslog=1200 --unit=C /dev/sda 上面的命令表示每隔 1200 秒,也就是 30 分钟,将硬盘 /dev/sda 的温度信息写入到 /var/log/syslog 里,单位为摄氏度. GPU 这里只考虑 Nvidia 的 GPU,它提供的 nvidia-smi 命令就可以将 GPU 信息保存为日志. sudo nvidia-smi daemon 这样就可以开启一个守护进程,将 Nvidia GPU 的信息保存到日志里.默认的保存路径为 /var/log/nvstats.Windows 系统下也可以使用这个命令,相应的默认保存地址为 C:/Program Files/NVIDIA Corporation/NVSMI

几行命令在 Arch Linux 下为本地局域网搭建一个 git server

安装 git So easy, pacman -S git 启动 git-daemon.socket systemctl start git-daemon.socket systemctl enable git-daemon.socket 这个 daemon 的实际启动命令为: ExecStart=-/usr/lib/git-core/git-daemon --inetd --export-all --base-path=/srv/git 从这里可以知道我们的 git 仓库放在 /srv/git 目录下.只要在该目录下创建一个 git 仓库,它就会自动被 git server 管理.用户访问该仓库的命令类似这样: git clone git@IP:/srv/git/repository.git 其中 IP 为 git server 的 IP,repository 为仓库的名称. 其实到这里就已经搞定了,是不是很简单?不是啦,还是需要一些配置的. 添加访问权限 如果你真的使用上面的命令去 clone 一个仓库,肯定是没有权限的.我们需要添加 ssh key.一般我们把 ssh 公钥放到 ~/.ssh/authorized_keys 里去.咦?git 用户的 $HOME 在哪里呢?用这个命令查看 eval echo "~git" 结果是 /.好像直接在根目录下放不太好吧.哦,那就修改一下 git 用户的 home 目录啊.

Vgg Practical Cnn 2016a 笔记

Getting started 代码和数据的下载此处省略,MatConvNet 工具包的编译安装省略.本文使用的环境为 Arch Linux, Matlab 2017a, MatConvNet 1.0-beta25. Part 1: CNN building blocks Part 1.1: convolution 一个典型的神经网络可以用以下公式表示: \[ f(\mathbf{x}) = f_{L} (\ldots f_{2}(f_{1}(\mathbf{x}; \mathbf{w}_{1}); \mathbf{w}_{2}) \ldots), \mathbf{w}_{L}). \] 每一个函数 \( f_{l} \) 接受一个输入 \( \mathbf{x}_{l} \) 和一个参数 \( \mathbf{w}_{l} \),产生一个输出 \( \mathbf{x}_{l+1} \).其中的参数 \( \mathbf{w} = (\mathbf{w}_{1}, \ldots, \mathbf{w}_{L}) \) 是从输入数据中学习到的,目的是为了解决某一特定问题,例如分类. 对于计算机视觉来说,输入数据一般就是 2D 的矩阵.一般来说,每个 \( \mathbf{x}_{i} \) 是一个 \( M \times N \times K \) 的实矩阵,对应着 \( M \times N \) 的像素,每个像素的通道数为 \( K \).因此,前两个维度张成矩阵空间,最后一个张成通道.注意,神经网络的输入 \( \mathbf{x} = \mathbf{x}_{1} \) 表示实际的输入图像,而其他的 \( \mathbf{x}_{i} \) 为中间文件,为特征图像 (feature map).