运行 GPU 上的 Spyder 代码而不是 Ubuntu 上的 CPU
Running Spyder code on GPU instead of CPU on Ubuntu
我正在使用 Spyder 在具有 GPU 的机器上创建深度学习模型我发现它正在 CPU 和我的代码 运行 上工作很长时间 time.First我下载了 tensorflow-GPU 但我不知道如何开始在 GPU 上工作。
我使用了 { with tf.device("cpu"):
} 但是当我在终端上写 nvidia-smi 时我发现没有 运行ning 进程。
我也用过{导入os
os.environ["CUDA_DEVICE_ORDER"] = "PCI_BUS_ID"<br>
os.environ["CUDA_VISIBLE_DEVICES"] = ""
} 但它不起作用。
如何在 GPU 上制作我的 Spyder 代码 运行 而不是 Ubuntu 上的 cpu?
如有任何帮助,我们将不胜感激。
代码:
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
根据github discussion,有两种方法可以解决该问题:
卸载tensorflow并安装tensorflow的降级版本
pip uninstall tensorflow
pip uninstall tensorflow-gpu
pip install tensorflow==1.8.0
pip install tensorflow-gpu==1.8.0
如果您有超过 1 个 GPU
export CUDA_VISIBLE_DEVICES='0'
我正在使用 Spyder 在具有 GPU 的机器上创建深度学习模型我发现它正在 CPU 和我的代码 运行 上工作很长时间 time.First我下载了 tensorflow-GPU 但我不知道如何开始在 GPU 上工作。
我使用了 { with tf.device("cpu"):
} 但是当我在终端上写 nvidia-smi 时我发现没有 运行ning 进程。
我也用过{导入os
os.environ["CUDA_DEVICE_ORDER"] = "PCI_BUS_ID"<br>
os.environ["CUDA_VISIBLE_DEVICES"] = ""
} 但它不起作用。
如何在 GPU 上制作我的 Spyder 代码 运行 而不是 Ubuntu 上的 cpu?
如有任何帮助,我们将不胜感激。
代码:
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
根据github discussion,有两种方法可以解决该问题:
卸载tensorflow并安装tensorflow的降级版本
pip uninstall tensorflow pip uninstall tensorflow-gpu pip install tensorflow==1.8.0 pip install tensorflow-gpu==1.8.0
如果您有超过 1 个 GPU
export CUDA_VISIBLE_DEVICES='0'