关闭

[置顶] 当太阳升起时开始奔跑

静谧的非洲大草原上,夕阳西下,这时,一头狮子在深思:明天当太阳升起,我要奔跑,以追上跑得最快的羚羊;此时,一只羚羊也在深思:明天当太阳升起,我要奔跑,以逃脱跑得最快的狮子。那么,无论你是狮子或是羚羊,当太阳升起,你要做的,就是奔跑。...
阅读(2285) 评论(1)

深度增强学习(DRL)漫谈 - 信赖域(Trust Region)系方法

一、背景深度学习的兴起让增强学习这个古老的机器学习分支迎来一轮复兴。它们的结合领域-深度增强学习(Deep reinforcement learning, DRL)随着在一系列极具挑战的控制实验场景及其它跨领域的成功应用,现在已是各大顶级AI会议的热门topic之一。之前两篇杂文深度增强学习(DRL)漫谈 - 从DQN到AlphaGo和深度增强学习(DRL)漫谈 - 从AC(Actor-Critic...
阅读(160) 评论(0)

Fuchsia OS中的RPC机制-FIDL

背景Fuchsia是Google继Android和Chrome OS后推出的下一代操作系统。和其它OS类似,为了使应用能跨进程和服务端通信,它需要一套进程间的过程调用(RPC)机制,类似于Android中的binder。在Fuchsia中,各种service之间的通信接口都是用FIDL(Fuchsia Interface Definition Language,曾用名mojom)定义的(即那些以fi...
阅读(187) 评论(0)

Ubuntu下常用强化学习实验环境搭建(MuJoCo, OpenAI Gym, rllab, DeepMind Lab, TORCS, PySC2)

和其它的机器学习方向一样,强化学习也有一些经典的实验场景,像Mountain-Car,Cart-Pole。话说很久以前,因为没有统一的开发测试平台,大家都会自己实现,有用C/C++的,有用Python,还有用Matlab的。所以大家论文中看到的场景虽然相似,但很多时候不完全一样。这样一方面重新造轮子,另一方面还有可能因为实验环境的差别影响结果的比较。于是后面大家渐渐开始建立统一的实验平台,另一方面...
阅读(892) 评论(3)

Ubuntu 16.04下安装Cuda 8.0, Anaconda 4.4.0和TensorFlow 1.2.1

是Nvidia卡的,可以考虑安装Cuda,这样可以用GPU加速。之前写过一篇在Ubuntu 14.04上装Cuda 7.5的文章(Link)。TensorFlow 1.2版本貌似需要Cuda Toolkit 8.0,过程和之前是差不多的。更新driver(如需),然后去Nvidia官网下载Cuda和cuDNN安装即可。具体不再累述。对于大部分N卡,Cuda 8.0需要driver的最低版本为367,所以如果已经够用,在安装cuda的时候保险点的话就不用更新驱动。如果更新驱动后不幸中招,如循环登录或无法进入图...
阅读(678) 评论(4)

深度增强学习(DRL)漫谈 - 从AC(Actor-Critic)到A3C(Asynchronous Advantage Actor-Critic)

之前在文章《深度增强学习(DRL)漫谈 - 从DQN到AlphaGo》扯了一些关于DRL的内容,但因为是以DQN为主线,其中大部分谈的是value-based方法。我们知道传统增强学习(Reinforcement learning, RL)中除了value-based方法,还有一大类就是policy-based方法。在RL任务中,我们本质上最终要学习的是策略(Policy)。前者用的是间接方法,即通过学习值函数(va...
阅读(2318) 评论(0)

Android N中UI硬件渲染(hwui)的HWUI_NEW_OPS(基于Android 7.1)

UI作为用户体验的核心之一,始终是Android每次升级中的重点。从Androd 3.0(Honeycomb)开始,Android开始支持hwui(UI硬件加速)。到Android 4.0(ICS)时,硬件加速被默认开启。同时ICS还引入了DisplayList的概念(不是OpenGL里的那个),它相当于是从View的绘制命令到GL命令之间的“中间语言”。它记录了绘制该View所需的全部信息,之后只要重放(replay)即可完成内容的绘制。这样如果View没有改动或只部分改动,便可重用或修改DisplayL...
阅读(2749) 评论(7)

懒人搭建OpenGrok for Android N on Ubuntu 16.04

本文以在Ubuntu 16.04上对Anroid N的源代码配置OpenGrok为例,记录了适合像我这种懒人的最基本搭建过程。想用各种高级用法请自行参见官方文档。...
阅读(1674) 评论(0)

Fuchsia开发环境搭建 for Ubuntu 16.04

Fuchsia是Google主要为IoT、手机及个人电脑开发的下一代操作系统。它与之前的Android、Chrome OS、Brillo等操作系统相比,一个显著的特点是它没有基于Linux内核,而是采用了微内核的Magenta(基于Little kernel)。Linux经过二、三十年的发展,今天无论是嵌入式设备还是分布式服务器,都有它的身影。但它起源于desktop时代,经过这么多年的活跃开发今天已俨然成为“大而全”的通用型内核。虽然可以通过裁剪、定制、增强满足IoT的基本功能,但时至今日种类多样的IoT...
阅读(1335) 评论(0)

深度增强学习(DRL)漫谈 - 从DQN到AlphaGo

深度增强学习(Deep reinforcement learning, DRL)是DeepMind(后被谷歌收购)近几近来重点研究且发扬光大的机器学习算法框架。两篇Nature上的奠基性论文(DQN和AlphaGo)使得DRL这一深度学习(Deep learning, DL)和增强学习(Reinforcement learning, RL)的交叉方向变得炙手可热。再加上多个影响较大的benchmark(Atari 2600,围棋等)上漂亮的成绩使它如今倍受学术界和商业界的关注,甚至让人闻到了泡沫的味道。不管...
阅读(5430) 评论(8)

Android N(7.0)中的Vulkan支持

Vulkan为Khronos Group推出的下一代跨平台图形开发接口,用于替代历史悠久的OpenGL。Android从7.0(Nougat)开始加入了对其的支持。Vulkan与OpenGL相比,接口更底层,从而使开发者能更直接地控制GPU。由于更好的并行支持,及更小的开销,性能上也有一定的提升。另外层式架构可以帮助减少调试和测试的时间。但是,代价是实现相同的功能更复杂了。原本用OpenGL写个最简单的demo百来行,用vulkan祼写的话没千把行下不来。因此实际使用中需要有utility层来简化接口调用。...
阅读(5117) 评论(1)

C++11中一些新语言特性与相似特性的比较

众所周知,C++11中加入了不少语言新feature,其中一些用于替代之前C++标准中的相应feature。其中不少看起来都很像,或者表面看起来只是让代码更简洁。下面就列举了一些C++11 feature及之前标准中类似feature,看下它们有些什么更深的区别。 std::array vs C-style array std::array是C++11中引入的新容器,用于表示固...
阅读(1301) 评论(2)

libboost一些常用库(数据结构,迭代器,算法及字符串)

C++强大的重要原因之一就是它的库。而boost就是这样一个包罗万象的C++库,同时它也是C++标准库的官方后备军。不仅实用,功能全,而且灵活,高效,质量高。无论是学习或项目,都是有力的工具。下面罗列了容器、算法等几个重要类别下的主要子库。其中的一些已经是目前比较主流的C++11标准,有些在进入标准库的过程中,未来可能成为标准库的一部分。有些虽然进了标准库,但boost中的实现提供了额外的特性。总之,在boost中可以看到C++标准发展的一些趋势。...
阅读(2469) 评论(0)

Vulkan开发环境搭建for Windows

首先需要有支持Vulkan的GPU和相应的driver。比如Nvidia,可以在https://developer.nvidia.com/vulkan-driver上查看自己的GPU是否支持Vulkan,如果支持可以下载相应驱动。注意目前Nvidia支持Vulkan的driver还是beta版的。打开NVIDIA控制面板可以看driver是否已安装成功: 然后就可以搭建开发环境了...
阅读(4078) 评论(1)

Android中的转屏流程

我们知道Android中支持横屏和竖屏,用户可以选择锁定(rotation lock)也可以选择让传感器来自动转屏。而转屏时为了使用户体验更流畅,会对屏幕截屏,然后使用截屏的图来做转屏动画,直到转屏动作结束。接下来以自动旋转为例看一下大体流程。过程虽然很短,但涉及到的模块其实不少,一个简化的相关类图如下:...
阅读(3242) 评论(1)

NVIDIA Cuda 7.5 on Ubuntu 14.04 64 bits

关于在Linux上搭Cuda环境,做个笔记备忘。 1. 安装GPU Driver 在Ubuntu中可以通过System Settings -> Software & Updates安装: 详细可参考https://help.ubuntu.com/community/BinaryDriverHowto/Nvidia 。装好后,执行nvidia X server settin...
阅读(1840) 评论(0)

Wayland与Weston简介

简单地说,Wayland是一套display server(Wayland compositor)与client间的通信协议,而Weston是Wayland compositor的参考实现。其官网为http://wayland.freedesktop.org/。它们定位于在Linux上替换X图形系统。X图形系统经历了30年左右的发展,其设计在今天看来已略显陈旧。在X系统中,X Server作为中心...
阅读(7170) 评论(4)

Linux中的常用内存问题检测工具

C/C++等底层语言在提供强大功能及性能的同时,其灵活的内存访问也带来了各种纠结的问题。如果crash的地方正是内存使用错误的地方,说明你人品好。如果crash的地方内存明显不是consistent的,或者内存管理信息都已被破坏,并且还是随机出现的,那就比较麻烦了。当然,祼看code打log是一个办法,但其效率不是太高,尤其是在运行成本高或重现概率低的情况下。另外,静态检查也是一类方法,有很多工具(lint, cpp...
阅读(10180) 评论(3)

Android中的软件Watchdog

由于Android的SystemServer内有一票重要Service,所以在进程内有一个软件实现的Watchdog机制,用于监视SystemServer中各Service是否正常工作。如果超过一定时间(默认30秒),就dump现场便于分析,再超时(默认60秒)就重启SystemServer保证系统可用性。同时logcat中会打印类似下面信息: W Watchdog: *** WATCHDOG KILLING SYSTEM PROCESS: Blocked in monitor com.android.se...
阅读(6479) 评论(3)

Python数据分析及可视化的基本环境

首先搭建基本环境,假设已经有Python运行环境。然后需要装上一些通用的基本库,如numpy, scipy用以数值计算,pandas用以数据分析,matplotlib/Bokeh/Seaborn用来数据可视化。再按需装上数据获取的库,如Tushare(http://pythonhosted.org/tushare/),Quandl(https://www.quandl.com/)等。网上还有很多可供分析的免费数据集(http://www.kdnuggets.com/datasets/index.html)。...
阅读(5848) 评论(0)

ABS(Android Build System)中在编译时生成源代码文件

编译时经常有的需求是有些.c或者.h文件需要在编译时由某个接口定义文件生成。同时还可能有下面的需求: * 同一个接口定义文件会用于产生多个源文件。 * 生成的源文件可能会被其它的Project使用。 举例来说,现在需要从接口定义文件xxx.xml通过可执行文件generator生成源文件xxx_A.h,xxx_B.h和xxx_C.c。 generator A xxx_A.h gen...
阅读(1479) 评论(0)
305条 共16页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:1001918次
    • 积分:12412
    • 等级:
    • 排名:第1223名
    • 原创:195篇
    • 转载:109篇
    • 译文:1篇
    • 评论:430条
    文章分类
    文章存档