PyTorch 中的 Unpooling 操作
Average Unpooling
Pytorch 中并没有直接实现 AverageUnpooling 的 layer,但是 pool 操作本身没有参数,因此可以认为是完全针对 Function 的再封装。通过 F.interpolate 操作可以实现类似 AverageUnpooling 的操作。参考 issue
其中,F.interpolate 函数的定义为:
12345678910111213141516171819202122torch.nn.functional.interpolate(input, size=None, scale_factor=None, mode='nearest', align_corners=None)'''Args: input (Tensor): the input tensor size (int or Tuple[int] or Tuple[int, int] or Tuple[int, int, int]): output spatial size. scale_factor ...
【记录】家用服务器基本设置与备忘
家用服务器基本设置与备忘
ThinkPad E455,操作系统为CentOS
英文显示,支持中文(utf8)
安装时使用英文安装,但要选择生成中文语言包
1sudo echo 'LC_ALL="en_US.utf8" > /etc/locale.conf
笔记本合盖不睡眠/挂起
修改文件
1sudo vim /etc/systemd/logind.conf
其中配置项为:
1HandleLidSwitch=lock
配置生效
1sudo systemctl restart systemd-logind
部分配置项说明
1234HandlePowerKey 按下电源键后的行为,默认power offHandleSleepKey 按下挂起键后的行为,默认suspendHandleHibernateKey 按下休眠键后的行为,默认hibernateHandleLidSwitch 合上笔记本盖后的行为,默认suspend
参数说明
ignore 忽略,跳过
power off 关机
eboot 重启
halt 挂起
suspend she ...
【DST】饥荒联机版常用指令
服务器控制
连接服务器
1c_connect("IP address", port, "password") -- 密码可省略,默认端口为10999
重新加载世界(会重启服务器并还原到最近存储点)
1c_reset()
强制存档
1c_save()
回档
1c_rollback(count) -- count 默认为 1
人物属性控制
三维上限
123ThePlayer.components.health:SetMaxHealth(value) -- 生命ThePlayer.components.sanity:SetMax(value) -- 理智ThePlayer.components.hunger:SetMax(value) -- 饥饿
所有玩家控制
12c_listallplayers() -- 列出玩家和编号,默认在服务器 log 处显示,除非开启终端增强modAllPlayers[number] -- 与 ThePlayer 等价
杀死 / 复活
12AllPlayers[number]:PushEv ...
ThinkPad X1 Extreme 拆机换硅脂
我使用的电脑是 ThinkPad x1 Extreme Gen1, 这款电脑兼具性能和轻薄的属性,标压CPU+1050MaxQ显卡,外加 ThinkPad 一贯的高耐用,具备良好的魔改潜力。
拆机
这款机器设计上极为简洁,整个背板一体化由7颗螺丝控制
拧开7颗螺丝就能完全打开电脑内部,看到主板及相关部件。我的电脑是改装过黑苹果的,因此拆掉了原装的 Intel 网卡换上了有转接板的 Mac 原装网卡;硬盘也进行了扩容,主板很良心,给设计了两个 M.2 硬盘位,很方便进行扩容;为了更好的散热,我给没一块硬盘都加装了铜条,2mm的铜条刚刚好,但因为铜条下面要垫上导热贴,稍稍有些厚,铜条紧顶着背板。
注意上图中黄色标示的供电连接。拆开背板第一件事就是切断电池供电,也就是电池旁边的卡扣。然后,因为我们要更换硅脂,需要拆掉散热模组,因此还要断开两个风扇的供电。
做好之后,就可以动手拆散热模组了。散热模组一共5颗螺丝,分布在 CPU 和 GPU 周围,这五颗螺丝建议不要一次性完全拧开,应该每颗一次只拧一点点,慢慢拧开所有螺丝。
拧开螺丝之后,就需要慢慢的小心的撬开风扇,两个按照上图所示的顺序 ...
nvidia-smi 指令的使用
调整 nvidia-smi 命令的采样时间
默认情况下,nvidia 驱动的 persistence mode 是关闭状态
这就使得对于显卡利用率以及显存占用率的刷新频率很低,单次调用指令查询需要等很久,配合 watch 进行监控更是难以忍受。因此,可以通过开启 persistence mode 使得缓存被保留,从而达到高采样的目的
1sudo nvidia-smi -i <target gpu> -pm ENABLED
或者
1sudo nvidia-smi -i <target gpu> -pm 1
通过以上两条命令,就能使得显卡信息的刷新率明显上升
Error Correcting Code (ECC) 开关
ECC (error correcting code, 错误检查和纠正) 功能,该功能可以提高数据的正确性,随之而来的是可用内存的减少和性能上的损失。
通过
1nvidia-smi -i <target gpu> -e 0/1
可关闭(0)/开启(1)第 <target gpu> 号GPU的ECC模式,重启后该设置 ...
复制命令cp与scp
scp 指令
scp 指令常用于完成远程服务器和本地主机,或远程服务器之间的复制操作。指令基于 ssh 协议,因此任何能够通过 ssh 连接的服务器都能够使用 scp 指令进行文件传输。
参数与指令格式为:
123$ scpusage: scp [-346BCpqrv] [-c cipher] [-F ssh_config] [-i identity_file] [-l limit] [-o ssh_option] [-P port] [-S program] source ... target
常见的使用场景:
本地传输到远端:
1scp myfile1 myfile2 user@1.1.1.1:/dir
这种场景下可以使用通配符 * 来传输多个文件
将远端文件拉取到本地
12scp user@1.1.1.1:/dir/file myfilescp user@1.1.1.1:/path/directory/\{foo.txt,bar.txt\} .
注意: 当拉取多个远端文件时,文件和逗号之间不能有空格
指定特殊端口
部分服务器禁 ...
论文笔记:Once for All: Train One Network and Specialize it for Efficient Deployment
来源:MIT,MIT-IBM Waston AI Lab,paper,ICLR20
总的来说,本文有一下几点值得关注
采用了一次性训练超网并抽取子网的方式,个人感觉这是 cascade 等多阶段思路的延续,及后续网络只是进一步细化/处理较难任务,网络前期就已经有分类能力了
为了增强抽取子网的效果,提出了 PS 的训练方法,训练过程感觉作者说的不是很清楚,感觉是通过多种 loss 共同作用训练子网,同时以共享参数的方式保证超网不会受到太大影响
值得注意的是,即使没有使用PS,从超网中抽取子网依旧是可行的,虽然会有一定准确率的损失,但是依旧是一个不错的结果。
Abstract
为了使深度模型适应特殊的硬件结构,常见的方法是手工设计或者使用 AutoML 来遍历所有的 case 寻找解决方案
本文使用的 Once for all (OFA) 方法将模型训练从网络结构设计中解构出来。根据给定的场景,从训练一次的网络中搜索,选择出子网络。
设计了 progressive shrinking 算法,使得训练一次的网路能够支持 10^9 的子网络使得准确率和单独训练的效果一致
在 Ima ...
【转】 Sleepwatcher:Mac睡眠与唤醒自动执行命令
原贴地址:Sleepwatcher : Run Script on Sleep
Sleepwatcher 是一个可以再mac睡眠和唤醒时自动执行命令行脚本的工具,下文两部分分别描述了这个工具的安装与设置方法,在实际的使用中不仅可以执行bash脚本,而且可以执行Applescript命令,使用起来十分方便。
Sleepwatcher is a Mac OS X background daemon that can trigger a script to run when various power related events occur, such as the laptop sleeping or waking up, the screen dimming, or power adapter being connected or disconnected.
On my personal laptop, I have an AppleScript set up within sleepwatcher that mutes the audio each time the lapto ...
论文笔记:NSGA-Net: Neural Architecture Search using Multi-Objective Genetic Algorithm
NSGA-Net: Neural Architecture Search using Multi-Objective Genetic Algorithm
来源:paper, code, MSU, GECCO-2019, first Submitted on 8 Oct 2018
词汇:
Words
Meaning
genetic algorithm
遗传算法
mutation
突变
crossover
互换,交叉
population
种群
摘要
设计目标:
考虑多重和复杂目标的方法
有效平衡在神经网络潜在空间中的探索和利用
在一次运行中寻找多个不同的权衡网络架构
NSGA-Net 是一个基于种群的搜索算法,分三步探索可能的神经网络结构空间
种群初始化,基于来自人工设计结构的先验知识
探索,比较结构之间的互换与突变
利用,通过贝叶斯网络的形式使用存储在整个神经结构评价历史中的隐藏的有用信息
希望同时优化错误评价函数和计算复杂性
Introduction
此前使用的 NAS 方法:
STOA 的增强学习方法需要消耗大量的计算,对于都多空 ...
论文笔记:Rethinking Knowledge Graph Propagation for Zero-Shot Learning (DGP)
Rethinking Knowledge Graph Propagation for Zero-Shot Learning (DGP)
来源:挪威北极大学&清华&中山& MIT &中科院自动化所 & CMU, arxiv-2018, CVPR 2019,paper,code
摘要
部分总结
来自:论文浅尝 | 当知识图谱遇上零样本学习——零样本学习综述
本文在 Zero-shot Recognition via Semantic Embeddings and Knowledge Graphs [1] 的基础上进行了改进,包括:
更少的GCN层数,本文中使用了2层神经网络进行计算(即GPM,上文使用了6层)
减少层数的同时,一些较远节点将不被考虑在内,为了解决这个问题,作者将一些节点的祖先节点/子孙节点直接与该节点相连,生成了更密集的图,即DGPM,这些直接相连的边按照距离的远近,加入attention机制进行了加权计算(即ADGPM)
提出了在CNN部分根据graph信息进行fine tune的计算方式,使得提取图片特征的卷积网络可以 ...