Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
添加GPU卡会自动扩展tensorflow的使用吗?_Tensorflow_Deep Learning_Gpu_Scalability - Fatal编程技术网

添加GPU卡会自动扩展tensorflow的使用吗?

添加GPU卡会自动扩展tensorflow的使用吗?,tensorflow,deep-learning,gpu,scalability,Tensorflow,Deep Learning,Gpu,Scalability,假设我可以在带有tensorflow的GTX 1070卡上使用样本大小N、批量大小M和网络深度L进行培训。现在,假设我想用更大的样本2N和/或更深的网络2L进行训练,并得到内存错误 插入额外的GPU卡是否会自动解决此问题(假设所有GPU卡的内存总量足以容纳批处理及其梯度)?还是说纯张量流是不可能的 我读到,有比特币或以太矿商,他们可以用多个GPU卡建立采矿场,这个采矿场将更快地采矿 采矿农场在深度学习方面也会表现得更好吗 插入额外的GPU卡会自动解决这个问题吗 不可以。您必须更改Tensorfl

假设我可以在带有tensorflow的GTX 1070卡上使用样本大小
N
、批量大小
M
和网络深度
L
进行培训。现在,假设我想用更大的样本2N和/或更深的网络2L进行训练,并得到内存错误

插入额外的GPU卡是否会自动解决此问题(假设所有GPU卡的内存总量足以容纳批处理及其梯度)?还是说纯张量流是不可能的

我读到,有比特币或以太矿商,他们可以用多个GPU卡建立采矿场,这个采矿场将更快地采矿

采矿农场在深度学习方面也会表现得更好吗

插入额外的GPU卡会自动解决这个问题吗

不可以。您必须更改Tensorflow代码,以便在不同的设备上显式计算不同的操作(例如:在每个GPU上的单个批次上计算梯度,然后将计算出的梯度发送给协调器,协调器累积接收到的梯度,并更新平均这些梯度的模型参数)

此外,Tensorflow非常灵活,允许您为每个不同的设备(或不同的远程节点,都是一样的)指定不同的操作。 您可以在单个计算节点上进行数据扩充,并让其他节点在不应用此函数的情况下处理数据。您只能在一个设备或一组设备上执行某些操作

纯张量流是不可能的

tensorflow是可能的,但您必须更改为单个序列/推理设备编写的代码

我读到,有比特币或以太矿商,他们可以用多个GPU卡建立采矿场,这个采矿场将更快地采矿。 采矿农场在深度学习方面也会表现得更好吗

使用POW(工作证明)的区块链需要使用类似蛮力的方法解决一个难题(它们使用不同的输入计算大量散列,直到找到有效的散列)

这意味着,如果您的单个GPU可以猜测1000哈希/秒,那么两个相同的GPU可以猜测2 x 1000哈希/秒

GPU正在进行的计算完全不相关:GPU:0生成的数据不被GPU:1使用,并且计算之间没有同步点。这意味着一个GPU所做的任务可以由另一个GPU并行执行(显然每个GPU有不同的输入,因此设备计算哈希以解决网络给出的不同问题)


回到Tensorflow:一旦您修改代码以使用不同的gpu,您就可以更快地训练您的网络(简而言之,因为您使用的是更大的批量)

AFAIK,在cuda中,您可以选择用于特定程序的gpu。所以,我猜,不,它不会缩放。为什么要平均梯度?为什么要平均梯度?因为每个GPU都在自己的批次上计算梯度,所以您希望在平均方向上更新模型参数(这只是小批量梯度下降的大范围推广。不是在单个小批量上做梯度下降,而是在几个小批量上做梯度下降)哦,我弄错了。总梯度仍然是
gradient\u average*n\u gpu
。每个gpu上的每个模型都是通过
gradient\u average
应用的,而不是
total\u gradient