上一页 1 2 3 4 5 6 ··· 15 下一页
摘要: Linux:进程模型和进程管理 在Linux系统中,执行一个程序或命令就可以触发一个进程,系统会给予这个进程一个ID,称为PID,同时根据触发这个进程的用户与相关属性关系,基于这个PID一组有效的权限设置。举个常见的例子,我们要操作系统的时候通常是利用ssh连接程序或直接在主机上登录,然后获取shell。默认的shell是bash,对应的路径为/bin/bash,那么同时间的每个人登录都是执行/bin/bash,不过每个人获取的权限不同。 阅读全文
posted @ 2023-04-11 23:27 orion-orion 阅读(614) 评论(6) 推荐(2) 编辑
摘要: Git:国内用命令行访问GitHub的方法 首先可以直接改Hosts文件(现在不太管用了)。如果你是Linux或Mac系统,那么可以通过命令sudo vim /etc/hosts打开Hosts文件并进行修改。如果你已经拥有了网络代理服务,那么我们可以在此基础上配置终端代理。我们查看得知自己代理服务器的IP地址为http://127.0.0.1,端口号为7890,则我们就可以使用这里的IP地址和端口号配置GitHub的终端代理了:git config --global http.https://github.com.proxy socks5://127.0.0.1:7890。 阅读全文
posted @ 2023-04-11 10:33 orion-orion 阅读(1234) 评论(6) 推荐(0) 编辑
摘要: SICP:求值和环境模型(Python实现) 一个环境就是帧(frame) 的一个序列,每个帧是包含着一些绑定(bindings) 的表格。这些约束将一些变量名字关联于对应的值(在一个帧内,任何变量至多只有一个绑定)。每个帧还包含一个指针,指向这个帧的外围环境(enclosing environment)。如果由于当前讨论的目的,将相应的帧看做是全局(global) 的,那么它将没有外围环境。一个变量相对于某个特定环境的值,也就是在这一环境中,包含着该变量的第一个帧里这个变量的绑定值。 阅读全文
posted @ 2023-03-23 13:56 orion-orion 阅读(243) 评论(0) 推荐(1) 编辑
摘要: 跨域推荐:嵌入映射、联合训练和解耦表征 跨域推荐旨在利用从其它相关源域收集的用户-物品交互信息以提升目标域的推荐质量。传统的跨域推荐方法常常基于嵌入和映射(Embedding and Mapping,EMCDR) 的思路,这种方法在进行对齐操作之前,各领域需要先通过预训练以独立地得到用户/物品的embeddings。因此,有偏的(biased) 预训练表征将无可避免地包含领域特有的(domain-specific) 信息,从而会导致对跨领域迁移信息产生负面影响。事实上,跨域推荐的关键问题就在于:究竟需要在不同的域之间共享什么信息?也即如何让表征能够编码到领域间共享(domain-shared)的信息? 阅读全文
posted @ 2023-03-15 17:23 orion-orion 阅读(1550) 评论(0) 推荐(1) 编辑
摘要: SICP:赋值和局部状态(Python实现) 前面我们介绍了组成程序的各种基本元素,看到了如何把基本过程和基本数据组合起来,构造出复合的实体。不过对于设计程序而言,这些手段还不够,我们还需要一些能够帮助我们构造起模块化(modular)的大型系统的策略。所谓模块化,也即使这些系统能够“自然地”划分为一些内聚(coherent)的部分,使这些部分可以分别进行开发和维护。接下来我们要研究两种特色很鲜明的组织策略,它们源自于对于系统结构的两种非常不同的“世界观”(world views),它们分别将注意力放在对象(objects)和信息流(streams of information)上。 阅读全文
posted @ 2023-03-06 22:10 orion-orion 阅读(274) 评论(0) 推荐(1) 编辑
摘要: 分布式机器学习:异步SGD和Hogwild!算法(Pytorch) 同步算法的共性是所有的节点会以一定的频率进行全局同步。然而,当工作节点的计算性能存在差异,或者某些工作节点无法正常工作(比如死机)的时候,分布式系统的整体运行效率不好,甚至无法完成训练任务。为了解决此问题,人们提出了异步的并行算法。在异步的通信模式下,各个工作节点不需要互相等待,而是以一个或多个全局服务器做为中介,实现对全局模型的更新和读取。这样可以显著减少通信时间,从而获得更好的多机扩展性。 阅读全文
posted @ 2023-02-13 22:07 orion-orion 阅读(876) 评论(0) 推荐(0) 编辑
摘要: Pytorch:单卡多进程并行训练 在深度学习的项目中,我们进行单机多进程编程时一般不直接使用multiprocessing模块,而是使用其替代品torch.multiprocessing模块。它支持完全相同的操作,但对其进行了扩展。Python的multiprocessing模块可使用fork、spawn、forkserver三种方法来创建进程。但有一点需要注意的是,CUDA运行时不支持使用fork,我们可以使用spawn或forkserver方法来创建子进程,以在子进程中使用CUDA。 阅读全文
posted @ 2023-01-24 22:30 orion-orion 阅读(2928) 评论(0) 推荐(1) 编辑
摘要: SICP:复数的直角和极坐标的表示(Python实现) 数据抽象屏障是控制复杂性的强有力工具,然而这种类型的数据抽象还不够强大有力。从一个另一个角度看,对于一个数据对象可能存在多种有用的表示方式,且我们希望所设计的系统能够处理多种表示形式。比如,复数就可以表示为两种几乎等价的形式:直角坐标形式(实部和虚部)和极坐标形式(模和幅角)。有时采用直角坐标更方便,有时采用幅角更方便。我们希望设计的过程能够对具有任意表示形式的复数工作。 阅读全文
posted @ 2023-01-23 21:11 orion-orion 阅读(377) 评论(0) 推荐(1) 编辑
摘要: SICP:符号求导、集合表示和Huffman树(Python实现) 到目前为止,我们已经使用过的所有复合数据,最终都是从数值出发构造起来的(比如我们在上一篇博客所介绍的链表和树就基于数来进行层次化构造)。在这一节里,我们要扩充所用语言的表达能力,引进将任意符号作为数据的功能。本节内容包括符号求导、如何设计集合的表示和Huffman编码树。 阅读全文
posted @ 2023-01-04 20:55 orion-orion 阅读(351) 评论(0) 推荐(1) 编辑
摘要: 数值计算:前向和反向自动微分(Python实现) 自动微分技术(称为“automatic differentiation, autodiff”)是介于符号微分和数值微分的一种技术,它是在计算效率和计算精度之间的一种折衷。自动微分不受任何离散化算法误差的约束,它充分利用了微分的链式法则和其他关于导数的性质来准确地计算它们。我们可以选择定义一种新的数据类型来存储[u,u′]和[v,v′]这类数对。我们可以在这些数对上定义一种代数运算,这些代数运算编码了一些经典的操作。 阅读全文
posted @ 2022-12-28 16:03 orion-orion 阅读(589) 评论(0) 推荐(2) 编辑
上一页 1 2 3 4 5 6 ··· 15 下一页