1. 进程号和父进程号
获取进程号:
#include <unistd.h>
pid_t getpid(void);
// always successfully returns process ID of caller
可以通过 Linux...
阅读全文...
【Linux/UNIX系统编程】文件I/O 2
1. 文件控制操作:fcntl()
#include <fcntl.h>
int fcntl(int fd, int cmd, ...);
// return on success depends on cmd, or -1 on error...
阅读全文...
阅读全文...
【Linux/UNIX系统编程】通用I/O模型
本章重点介绍用于文件输入/输出的系统调用。本章开篇会讨论文件描述符的概念,随后会逐一讲解构成通用 I/O 模型的系统调用,其中包括:打开文件、关闭文件、从文件中读数据和向文件中写数据。
所有执行 I/O 操作的系统调用都以文件描述符,一个非负整数(通常...
阅读全文...
阅读全文...
【Linux/UNIX系统编程】 系统编程概念
1. 系统调用
以x86平台为例,分析系统调用:
应用程序通过调用 C 语言函数库中的外壳(wrapper)函数,来发起系统调用
对系统调用中断处理例程来说,外壳函数必须保证所有的系统调用参数可用。通过堆栈,这些参数传入外壳函数,但内核却希望将这些参数...
阅读全文...
阅读全文...
【深度学习】Spatical Transformer
出现原因:CNN不能解决图像放大缩小和旋转的问题(即数据增强问题)
Spatial Transformer Layer是在CNN前又叠了一个Neuron Network
它不仅可以transform input layer,也可以被放在CNN里面,...
阅读全文...
阅读全文...
【深度学习】Adaptive Learning Rate
critical point 不一定是我们训练中最大的阻碍
大多时候,Loss不再变动,大家会猜测是不是gradient为0的问题,但实际上Loss不再下降时gradient不一定很小
当Learning rate较大时,会发现gradient在两侧震...
阅读全文...
阅读全文...
【深度学习】Batch and Momentum
Batch
shuffle:常见做法为在每次epoch开始之前划分一次batch,每个epoch的batch都不一致,使得每个epoch都不一样
但更新参数也需要时间
因此,batch过小其实会耗费巨量的时间,但batch过大会影响结果...
阅读全文...
阅读全文...
【深度学习】Local Minima and Saddle Point
在模型训练过程中,我们可能会遇到模型loss function无法下降的情况,此时梯度为0,这个点统称为临界点(critical point)
局部最小值 (local minima) 与鞍点 (saddle point)
如何判断是卡在局部最...
阅读全文...
阅读全文...
【深度学习】机器学习攻略
检查training data上的loss
训练集Loss高
训练集的Loss过大,表明没有学好:
1. 模型偏差(model bias)
模型 (函数) 过于简单
重新设计模型,可以给模型更大的弹性,比如我们增加特征
2. 优化问题
弹性足够...
阅读全文...
阅读全文...