Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.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
Tensorflow &引用;添加可见gpu设备:0;在nohup.out中不断输出_Tensorflow_Nohup_Particle Swarm - Fatal编程技术网

Tensorflow &引用;添加可见gpu设备:0;在nohup.out中不断输出

Tensorflow &引用;添加可见gpu设备:0;在nohup.out中不断输出,tensorflow,nohup,particle-swarm,Tensorflow,Nohup,Particle Swarm,我正在运行一个pso程序,我使用tensorflow计算均方误差作为适应度,但nohup.out中每分钟都有一个输出,以“添加可见gpu设备:0”开始。我使用gpu和cpu来运行我的代码,但5天后它们的速度几乎相同。为什么gpu运行得这么慢?如何停止恒定输出 我使用的是2号设备,gpu似乎可以工作 +-----------------------------------------------------------------------------+ |NVIDIA-SMI 384.130驱

我正在运行一个pso程序,我使用tensorflow计算均方误差作为适应度,但nohup.out中每分钟都有一个输出,以“添加可见gpu设备:0”开始。我使用gpu和cpu来运行我的代码,但5天后它们的速度几乎相同。为什么gpu运行得这么慢?如何停止恒定输出

我使用的是2号设备,gpu似乎可以工作

+-----------------------------------------------------------------------------+
|NVIDIA-SMI 384.130驱动程序版本:384.130|
|-------------------------------+----------------------+----------------------+
|GPU名称持久化-M |总线Id显示A |易失性解聚。ECC|
|风扇温度性能Pwr:使用率/上限|内存使用率| GPU Util Compute M|
|===============================+======================+======================|
|0泰坦Xp关闭| 00000000:02:00.0关闭|不适用|
|23%39C P0 61W/250W | 0MiB/12189MiB | 0%默认值|
+-------------------------------+----------------------+----------------------+
|1泰坦Xp关闭| 00000000:04:00.0关闭|不适用|
|23%40C P0 60W/250W | 0MiB/12189MiB | 0%默认值|
+-------------------------------+----------------------+----------------------+
|2泰坦Xp关闭| 00000000:83:00.0关闭|不适用|
|23%39C P8 17W/250W | 7261MiB/12189MiB | 0%默认值|
+-------------------------------+----------------------+----------------------+
|3泰坦Xp关闭| 00000000:84:00.0关闭|不适用|
|23%37C P0 58W/250W | 0MiB/12189MiB | 0%默认值|
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
|进程:GPU内存|
|GPU PID类型进程名称用法|
|=============================================================================|
|26737 C python 7251MiB
nohup.out每分钟打印一次信息:

2019-11-08 11:49:18.032239:I tensorflow/core/common_runtime/gpu/gpu设备。cc:1484]添加可见gpu设备:0
2019-11-08 11:49:18.032316:I tensorflow/core/common_runtime/gpu/gpu_device.cc:965]设备互连拖缆执行器与强度1边缘矩阵:
2019-11-08 11:49:18.032326:I tensorflow/core/common_runtime/gpu/gpu_device.cc:971]0
2019-11-08 11:49:18.032332:I tensorflow/core/common_runtime/gpu/gpu_device.cc:984]0:N
2019-11-08 11:49:18.032511:I tensorflow/core/common_runtime/gpu/gpu_device.cc:1097]创建了tensorflow设备(/job:localhost/replica:0/task:0/device:gpu:0,内存6991MB)->物理gpu(设备:0,名称:TITAN Xp,pci总线id:0000:83:00.0,计算能力:6.1)
2019-11-08 11:50:42.409142:I tensorflow/core/common_runtime/gpu/gpu_device.cc:1484]添加可见gpu设备:0
2019-11-08 11:50:42.409214:I tensorflow/core/common_runtime/gpu/gpu_device.cc:965]设备互连拖缆执行器与强度1边缘矩阵:
2019-11-08 11:50:42.409223:I tensorflow/core/common_runtime/gpu/gpu_device.cc:971]0
2019-11-08 11:50:42.409229:I tensorflow/core/common_runtime/gpu/gpu_device.cc:984]0:N
2019-11-08 11:50:42.409407:I tensorflow/core/common_runtime/gpu/gpu_device.cc:1097]创建了tensorflow设备(/job:localhost/replica:0/task:0/device:gpu:0,内存6991MB)->物理gpu(设备:0,名称:TITAN Xp,pci总线id:0000:83:00.0,计算能力:6.1)
目标函数如下所示:

def function(self, M, w_h, w_o):

    def model(X, w_h, w_o):
        h = tf.matmul(X, w_h)
        return tf.matmul(h, w_o)

    X = tf.placeholder(tf.float64, [None, 4])
    Y = tf.placeholder(tf.float64, [None, 2])

    w_h = tf.Variable(w_h)
    w_o = tf.Variable(w_o)

    py_x = model(X, w_h, w_o)

    loss = tf.reduce_mean((py_x-Y)**2)

    with tf.Session() as sess:
        tf.initializers.global_variables().run()
        sum = 0
        length = len(trY)
        for start, end in zip(range(0, length, batchsize), range(batchsize, length + 1, batchsize)):
            sum += sess.run(loss, feed_dict={X: trX[start:end], Y: trY[start:end]})
         if not length%batchsize:
            E = sum/(length/batchsize)
        else:
            E = sum/(1+floor(length/batchsize))
        return E

问题在于,每次调用
函数
,您都会创建新的图形节点和新会话,这很慢(每次调用都会变慢,因为图形变得拥挤)。只提前创建一次图表,并且只创建一个会话(您可以将其传递到
函数
),或者切换到急切模式。在任何情况下,我不知道为什么你需要变量在这里,如果你只是初始化他们,从来没有改变他们的值。