import numpy as np
from keras.models import Sequential
from keras.layers import Dense
import tensorflow as tf
tf.compat.v1.debugging.set_log_device_placement(True)
print(tf.config.list_physical_devices('GPU'))
model = Sequential()
model.add(Dense(1024, input_dim=8, activation='relu'))
model.add(Dense(1, activation='sigmoid'))
model.compile(loss='mse', optimizer='adam', metrics=['accuracy'])
X = np.random.randn(10,8)
y = np.random.randn(10)
model.fit(X, y, epochs=2)
model.save("model.h5")
import numpy as np
from keras.models import Sequential
from keras.layers import Dense
import tensorflow as tf
from keras.models import load_model
tf.compat.v1.debugging.set_log_device_placement(True)
print(tf.config.list_physical_devices('GPU'))
model = load_model('model.h5')
model.predict(X)
是的,这是可能的。这里有一个例子
MobileNetv2
使用一组GPU甚至TPU进行训练,这里我将加载预先训练的权重并进行预测。请注意,此行将确保它使用的是CPU而不是GPU:现在,如果列出可用的GPU,则没有:
下面是
MobileNetv2
的完整示例:是的,在keras中,它将无缝工作。使用tensorflow back的Keras将检查GPU是否可用,如果可用,将在GPU上对模型进行训练
类似地,当您加载模型时,如果没有可用的GPU,它将使用CPU
使用google colab进行实验
让我们使用“GPU”运行时启动google协作
输出
因此,在这种情况下,模型在可用的GPU上进行训练。您可以看到,它使用命令
!nvidia-smi
操作GPU。我们已将模型保存为model.h5
。让我们下载它并制作本地副本现在让我们将colab的运行时更改为“CPU”。让我们把我们的
model.h5
上传到合作者并做出预测作品输出:
正如您所看到的,正如预期的那样,没有可用的GPU,模型是在CPU上加载和运行预测的
Keras是无缝的。但在pytorch中,不同之处在于我们必须手动将模型从GPU移动到CPU
相关问题 更多 >
编程相关推荐