POSIX thread (pthread) 库初探
Tech

POSIX thread (pthread) 库初探

POSIX thread 库是 POSIX 的线程标准库,为 C/C++ 定义了一套创建和操纵线程的 API。在多处理器/多核系统上使用线程,可以通过分布式或并行的方式提升处理速度。创建新线程比 fork 新进程要快得多,所需的开销也更少,这是因为系统不会为线程初始化新的虚拟内存空间和运行环境。 pthread 实在是太常用了,刚好女朋友这几天在准备面试,那么我就在这里记录一下这个库常见的用法(顺便更新一下这个凉了巨久的博客) 线程基础知识 同一个进程下的所有线程拥有相同的地址空间 同一个进程下的所有线程共享: 进程的公有数据 进程指令 进程打开的文件描述符 信号及信号处理器 进程工作目录 进程用户ID(user_

  • H.D. Lin
    H.D. Lin
5 min read
torchtracer:一个管理 PyTorch AI 实验项目的工具
Machine Learning

torchtracer:一个管理 PyTorch AI 实验项目的工具

在使用 pytorch 框架进行机器学习(尤其是深度学习)实验时,经常需要考虑如何保存以下实验数据: - 模型的 checkpoints - 每次训练的 hyper-parameters - 训练过程中的各种变化参数及其图像(loss, accuracy, learning-rate 等) 除此之外,Keras 之类的其他框架在 fit 时会有一个表示训练进度的进度条,而 pytorch 原生并没有。

  • H.D. Lin
    H.D. Lin
4 min read
使用 Spatial Pyramid Pooling 让 CNN 接受可变尺寸的图像
Tech

使用 Spatial Pyramid Pooling 让 CNN 接受可变尺寸的图像

在传统 CNN 中,由于 Fully-Connected 层的存在,输入图像的尺寸受到了严格限制。通常情况下,我们需要对原始图片进行裁剪(crop)或变形(warp)的操作来调整其尺寸使其适配于 CNN。然而裁剪过的图片可能包含不了所需的所有信息,而改变纵横比的变形操作也可能会使关键部分产生非期望的形变。由于图片内容的丢失或失真,模型的准确度会受到很大的影响。

  • H.D. Lin
    H.D. Lin
5 min read
卷积神经网络入门
Tech

卷积神经网络入门

传统神经网络模型不能很好适应整张2维图片。比如一张 32×32×3(长32-宽32-RGB) 的彩色图片,在传统模型中第一层输入为了读入整张图片就需要 32×32×3 = 3072 个神经元,也就是有 3027 组参数,在这个简单的小图数据集(比如 CIFAR-10)好像看上去还能接受,但是一旦图片变成 200×200 的分辨率,就有 120,000 组参数了,这显然是训练时难以接受的。

  • OIdiot
    OIdiot
11 min read
爬爬爬 —— BeautifulSoup 还是 Scrapy?
Tech

爬爬爬 —— BeautifulSoup 还是 Scrapy?

为什么写这篇短文 最近在做一个 DL×CV 的 proj,需要大量的广东美食图片数据,刚好写一发爬虫。 发现身边很多同学突然看起了 python,而上手 proj 就是写爬虫,然而网上资料纷繁复杂,纠结是用 bs 还是 scrapy。 这里的介绍非常简要,涉及深层姿势的部分请出门右拐官网。 一些背景姿势 在 bs 和 scrapy 之间做选择前,首先当然要了解他们是什么,差别何在。 Scrapy 是一个非常成熟的工具包,你只要写很少的东西就能达到你要的效果——创建一个 spider

  • OIdiot
    OIdiot
3 min read