Concurrency vs. Parallelism [并发和并行]
并发[concurrency]和并行[parallelism]是两个相关但是不完全相同的概念。
并发[concurrency]和并行[parallelism]是两个相关但是不完全相同的概念。
数据并行[Data Parallelism]是用来解决深度学习中单批次训练数据[training batch data]过大无法放入GPU内存中的方法,其理论基础来源于分割数据进行梯度计算再合并结果并不会印象直接计算梯度的结果。所以可以将一个模型复制多份放入一台机器的多个GPU中或者多台机器的多个GPU中,然后将训练数据分割让每个GPU进行梯度计算,最后将计算结果汇总。
The summarized points of the book writing for computer science [1].
前文Name Scope vs Variable Scope in TensorFlow比较了作用域variable_scope和name_scope在TensorFlow中如何共享变量,但是它们需要分别和tf.get_variable和tf.Variable搭配使用。一般情况下,tf.variable_scope和tf.get_variable和搭配使用,tf.name_scope和tf.Variable搭配使用。
首先,据说这个问题名字的来源是这样的,赌场里的老虎机[slot machine]有一个绰号叫单臂强盗[single-armed bandit],因为它即使只有一只胳膊,也会把你的钱拿走。所以,当你进入一个赌场,面对一排老虎机,就像面对了一个多臂强盗,而Multi-Armed Bandit就是这样引申而来[当然还有一个说法是,可以把一排老虎机想象成一个老虎机有很多个臂,其实本质是一样的]。那么问题来了,由于不同老虎机的期望收益和期望损失不同,你采取什么老虎机选择策略来保证你的总收益最高呢?这就是经典的Multi-Armed Bandit问题。
OpenAI Gym库是一个兼容主流计算平台[例如TensorFlow,PyTorch,Theano]的强化学习工具包,可以让用户方便的调用API来构建自己的强化学习应用。
本文记录了一些笔者在使用 python[如无特别说明,主要是 python3]的技巧或者需要注意的地方,其他 python 的主要特性或者重要的使用方式,会单独成文不会列在这里。本文会持续更新。
在 Python[如无说明特指 Python3]中, 有将近 70 个内置函数[1],他们不需要用户定义或者声明引入,即可直接使用。在最近的项目中使用到了 globals()和 locals()两个函数,说一下自己的理解。