我正在运行一个Keras模型,提交截止日期为36小时,如果我在cpu上训练我的模型,大约需要50小时,有没有办法在gpu上运行Keras?
我正在使用Tensorflow后端并在我的Jupyter笔记本上运行它,而没有安装anaconda。
2.0兼容答案:虽然上面提到的答案详细解释了如何在Keras模型上使用GPU,但我想解释如何在Tensorflow 2.0版
上使用GPU。
要知道有多少GPU可用,我们可以使用以下代码:
print("Num GPUs Available: ", len(tf.config.experimental.list_physical_devices('GPU')))
要找出您的操作和张量分配给哪些设备,请将tf.debug.set\u log\u device\u placement(True)
作为程序的第一条语句。
启用设备放置日志记录会导致打印任何张量分配或操作。例如,运行以下代码:
tf.debugging.set_log_device_placement(True)
# Create some tensors
a = tf.constant([[1.0, 2.0, 3.0], [4.0, 5.0, 6.0]])
b = tf.constant([[1.0, 2.0], [3.0, 4.0], [5.0, 6.0]])
c = tf.matmul(a, b)
print(c)
给出如下所示的输出:
在设备 /job:localhost/replica: 0/任务: 0/设备: GPU: 0 tf执行op MatMul。张量([22.28.][49.64.]],形状=(2,2),dtype=Float32)
有关更多信息,请参阅此链接
当然。我想你已经为GPU安装了TensorFlow。
导入keras后,需要添加以下块。我在一台有56核cpu和gpu的机器上工作。
import keras
import tensorflow as tf
config = tf.ConfigProto( device_count = {'GPU': 1 , 'CPU': 56} )
sess = tf.Session(config=config)
keras.backend.set_session(sess)
当然,这种用法会对我的机器施加最大限制。您可以减少cpu和gpu的消耗值。
是的,您可以在GPU上运行keras模型。你需要先检查的东西很少。
sess=tf。tf.ConfigProto(log_device_placement=True)
对于TF
sess=tf.compat.v1.Session(config=tf.compat.v1.ConfigProto(log\u device\u placement=True))
(感谢@nbro和@Ferro在评论中指出这一点)
或
from tensorflow.python.client import device_lib
print(device_lib.list_local_devices())
输出将如下所示:
[
name: "/cpu:0"device_type: "CPU",
name: "/gpu:0"device_type: "GPU"
]
一旦完成所有这些,您的模型将在GPU上运行:
检查是否keras(
from keras import backend as K
K.tensorflow_backend._get_available_gpus()
一切都好。
问题内容: 我正在运行Keras模型,提交截止日期为36小时,如果我在cpu上训练我的模型大约需要50个小时,是否可以在gpu上运行Keras? 我正在使用Tensorflow后端,并在未安装anaconda的Jupyter笔记本上运行它。 问题答案: 是的,您可以在GPU上运行keras模型。几件事您将必须首先检查。 您的系统具有GPU(Nvidia。因为AMD尚未运行) 您已经安装了Tenso
什么JVM在CPU+GPU上运行? 我知道像Oracle、Zulu、OpenJDK这样的JVM,但没有一个是为了将处理卸载到GPU上而设计的。
我有一个量化的tflite模型,我想在Nvidia Jetson Nano上进行推理。我使用tf.lite。用于推理的解释器()方法。这个过程似乎没有在GPU上运行,因为CPU和GPU上的推理时间是相同的。 有没有办法使用Python在GPU上运行tflite模型? 我试图通过设置tf来强制使用GPU。device()方法,但仍然不起作用。官方文档中有一个叫做GPU加速委托的东西,但我似乎找不到任
我一直在我的电脑上用Tensorflow写程序,它使用Linux薄荷。无论出于什么原因,我都无法让Tensorflow在我的图形处理器上运行。 2021-04-26 15:46:11.462612: W tenstorflow/stream_executor/平台/默认/dso_loader.cc:60]无法加载动态库'libcudart.so.11.0';libcudart.so.11.0:无法
我已经在NetBeans中创建了一个Java项目,自动构建的分发文件(.jar)在我的Ubuntu15.04AMD64机器上运行得非常好。 我想在发布它之前确保它在windows上运行,但在windows 7 32位机器上测试后,我发现它不工作。下面是错误消息的屏幕截图。 我可以猜到一些问题--因为它谈到了一个。regex错误。我并没有在代码中真正使用regex,而是使用string.split。
我想计算一个损失函数,它在不同的输入上使用网络的输出两次。例如,假设, 更新:谢谢你们的回复。我想在keras或张量流中重新实现这篇论文。正如其中所解释的,“批评家”网络在GAN中是鉴别器,它有两个输入,一个接一个地运行,并根据输出和计算梯度计算损失函数。主要问题是如何在张量流或Keras中实现?