[paper] Generative Adversarial Nets
背景
传统生成网络使用马尔科夫链做生成网络。
效果
贡献
提供全新的网络模型,同时得到生成网络和鉴别网络。
网络
『对抗网络算法思路』
思路
构建2个网络,生成网络+鉴别网络,本文将其类比造假团队和鉴别警察。
开始时2者都比较弱,造假团队造出的赝品比较粗糙,鉴别警察鉴别假货的能力也比较差。
2个网络的关键在于,鉴别网络一开始必须要略强于生成网络。
开始时造假团队造的假货基本能被鉴别警察查出来。
后来,造假团队吸取经验(鉴别网络反馈生成网络哪些部分没做好),造假能力变强,鉴别警察变得无法看出假货。
鉴别警察也开始吸取经验(鉴别网络反馈真假品之间有哪些区别),鉴别假货的能力变强,假货也越来越多被鉴别出来。
重复上2步,造假团队(生成)和警察(鉴别)之间互相博...
[paper] Face Aging with Identity-Preserved Conditional Generative Adversarial Networks
背景
1.前人缺乏不同年龄段给定的人脸的训练样本。
2.传统做法,粗略的从原型基础上分类,基于原型方法年龄分组计算平均人脸。使用时对待不同年龄组的模式合成。结果导致每个人中特殊人群的信息丢失,一些合成的结果看起来不真实。
3.基于物理模型的方法。
4.RNN方法,相邻年龄组的面部合成更平滑,但身份信息没有明确的保持。
5.CGAN方法,没有效率,不同年龄的衰老几乎没有什么不同,由一定的效果,但看起来模糊。
效果
贡献
将CGAN应用到人脸衰老预测中。
重点是保证合成的人脸的人的身份是同一人,并迫使使其分类到目标年龄。
网络
IPCGAN组成
1.条件生成对抗网络。
2.身份保持模块。
3.年龄分类模块
将年龄分为5组,对...
[paper] ImageNet Classification with Deep Convolutional Neural Networks
背景
全连接的神经网络需要消耗大量计算资源。
全连接难以应用到较高分辨率的图片。
效果
贡献
在ImageNet子集上,训练了一个最大的卷积神经网络用于ILSVRC-2010和ILSVRC-2012比赛,获得最好成绩。
写了高优化的GPU实现2D卷积操作。
网络使用许多新的方法改善,并减少训练时间。
使用有效的技术防止过拟合。
网络
5层卷积
3层全连接
卷积后每层使用1层最大化池化层
每层使用ReLU(Rectified Linear Units)激活
LRU处理第1层(后来的论文证明无用)
ps:这里的网络,是将训练拆分成2部分,在2个GPU上跑,在第3层又映射到一起,后又拆分。
思路
1.卷积,...
[ros] realsense
安装
安装ros:
http://wiki.ros.org/melodic/Installation/Ubuntu
安装realsense sdk:
https://github.com/jetsonhacks/installRealSenseSDK
处理ddynamic_reconfigure问题:
sudo apt install ros-melodic-ddynamic-reconfigure
处理CMake Error cv_bridgeConfig.cmake:113问题:
https://github.com/ros-perception/vision_opencv/issues/209
安装realsense-ros:
https://github.com/Int...
[python 并行6] 分布式
简述
分布式计算的基本理念是将工作划分为一个一个小任务,分发给多台设备处理,再汇总结果。在分布式计算中,网络中的机器必须要保持可用(延迟误差、意外宕机等等),需要一个持续监控架构
分布式多进程 2
multiprocessing的子模块managers还支持把多进程分布在多台机器上,managers模块已经封装好了网络通信的细节
实现方法:我们可以使用managers模块将queue队列通过网络暴露出去,让其它机器访问到这个队列,然后就可以通过它实现数据交换
示例:
服务器通过暴露queue到网络,放入数据到队列,让客户端取出数据处理,再放回结果
服务器代码
# task_master.py
import random, time, queue
from multiproce...
[python 并行5] GPU
准备
需要有支持CUDA的Nvidia显卡
linux查看显卡信息:lspci | grep -i vga
使用nvidia显卡可以这样查看:lspci | grep -i nvidia
上一个命令可以得到类似”03.00.0“的显卡代号,查看详细信息:lspic -v -s 03.00.0
查看显卡使用情况(nvidia专用):nvidia-smi
持续周期性输出使用情况(1秒1次):watch -n 1 nvidia-smi
需要安装pycuda(linux安装:apt install python3-pycuda)
基本使用
1.底层操作
准备工作: sudo apt install python3-pycuda
...
[python 并行4] 异步
介绍 2
除了线性、并行执行模式外,还有异步模式,它与事件编程一样,十分重要
在并发的异步模式中,不同的任务在时间线上是相互交错的,而且一切都是在单一控制流(单线程)下进行的
1.asyncio (过时)
基本使用
1.1 使用asyncio实现事件循环管理
什么是事件循环?
在计算系统中,能够产生事件的实体被称为事件源(event source),而负责协商管理事件的实体被称为事件处理器(event handler)
它实现了管理计算代码中所有事件的功能:在程序执行期间事件循环不断周期反复,追踪某个数据内部发生的事件,将其纳入队列,如果主线程空闲则调用事件处理器一个一个地处理这些事件
注:事件循环不能使用@asyncio.coroutine标为协程
示例1:
延迟3秒后执行
...
[python 并行3] 进程
基本使用 1
#coding=utf-8
import multiprocessing
import os # 获取pid用
import time # 延时用
# 子进程要执行的函数
def child_proc(name):
print(f'child process {name} pid: {os.getpid()}')
time.sleep(3)
print(f'{name} finish')
# 主进程,必须在主模块中执行
if __name__ == '__main__':
print(f'parent process {os.getpid()} is running')
# 生成子进程
p1 = multiprocessing.Process(ta...
共计 74 篇文章,10 页。