简体   繁体   English

在 GPU 上运行 Spyder 代码,而不是在 Ubuntu 上运行 CPU

[英]Running Spyder code on GPU instead of CPU on Ubuntu

I am working on Spyder to create deep learning model on a machine have a GPU I have found that am working on a CPU and my code run for a long time.First I downloaded tensorflow-GPU but I don't how to start working on GPU.我正在使用 Spyder 在具有 GPU 的机器上创建深度学习 model 我发现正在使用 CPU 并且我的代码运行了很长时间。首先我下载了 tensorflow-GPU 但我不知道如何开始工作GPU。

I used { with tf.device("cpu"): } but when I write nvidia-smi on terminal I found no running processes.我使用 { with tf.device("cpu"): } 但是当我在终端上编写 nvidia-smi 时,我发现没有正在运行的进程。

I also used { import os os.environ["CUDA_DEVICE_ORDER"] = "PCI_BUS_ID"
os.environ["CUDA_VISIBLE_DEVICES"] = ""
我还使用了 { import os os.environ["CUDA_DEVICE_ORDER"] = "PCI_BUS_ID"
os.environ["CUDA_VISIBLE_DEVICES"] = ""
import os os.environ["CUDA_DEVICE_ORDER"] = "PCI_BUS_ID"
os.environ["CUDA_VISIBLE_DEVICES"] = ""
import os os.environ["CUDA_DEVICE_ORDER"] = "PCI_BUS_ID"
os.environ["CUDA_VISIBLE_DEVICES"] = ""
} but it doesn't work.
import os os.environ["CUDA_DEVICE_ORDER"] = "PCI_BUS_ID"
os.environ["CUDA_VISIBLE_DEVICES"] = ""
} 但它不起作用。

How to make my Spyder code run on GPU instead of cpu on Ubuntu?如何让我的 Spyder 代码在 GPU 而不是 Ubuntu 上的 cpu 上运行?

Any help would be appreciated.任何帮助,将不胜感激。

code:代码:

def createModel():
   with tf.device("cpu"):
        input_shape=(1, 22, 5, 3844)
        model = Sequential()
        model.add(Conv3D(16, (22, 5, 5), strides=(1, 2, 2), padding='same',activation='relu',data_format= "channels_first", input_shape=input_shape))

        model.add(keras.layers.MaxPooling3D(pool_size=(1, 2, 2),data_format= "channels_first",  padding='same'))

        model.add(BatchNormalization())
        model.add(Conv3D(32, (1, 3, 3), strides=(1, 1,1), padding='same',data_format= "channels_first",  activation='relu'))#incertezza se togliere padding

        model.add(keras.layers.MaxPooling3D(pool_size=(1,2, 2),data_format= "channels_first", ))
        model.add(BatchNormalization())
        model.add(Conv3D(64, (1,3, 3), strides=(1, 1,1), padding='same',data_format= "channels_first",  activation='relu'))#incertezza se togliere padding
        model.add(keras.layers.MaxPooling3D(pool_size=(1,2, 2),data_format= "channels_first",padding='same' ))
        model.add(BatchNormalization())
        model.add(Dense(64, input_dim=64,kernel_regularizer=regularizers.l2(0.0001), activity_regularizer=regularizers.l1(0.0001)))
        model.add(Flatten())
        model.add(Dropout(0.5))
        model.add(Dense(256, activation='sigmoid'))
        model.add(Dropout(0.5))
        model.add(Dense(2, activation='softmax'))
        opt_adam = keras.optimizers.Adam(lr=0.001, beta_1=0.9, beta_2=0.999, epsilon=1e-08, decay=0.0)
        model.compile(loss='categorical_crossentropy', optimizer=opt_adam, metrics=['accuracy'])
    return model

According to github discussion there are 2 ways to solve that problem:根据github 讨论,有两种方法可以解决该问题:

  1. Uninstall tensorflow and install downgrade version of tensorflow卸载 tensorflow 并安装 tensorflow 的降级版本

    pip uninstall tensorflow pip uninstall tensorflow-gpu pip install tensorflow==1.8.0 pip install tensorflow-gpu==1.8.0
  2. If you have more than 1 GPU如果您有超过 1 个 GPU

     export CUDA_VISIBLE_DEVICES='0'

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM