使用 keras Resnet50 进行预测时使用 gpu
Using gpu while making prediction with keras Resnet50
我正在使用 Resnet50 模型对图像进行矢量化以查找图像相似性。
为了提高程序的速度,我尝试了多处理,但由于 keras 的后端逻辑而失败了。
最后我是 运行 我在单机上的矢量化代码,它的性能还不错,但我需要更好的。为了减少这个矢量化操作消耗的时间,我可以使用我的 GPU 内置机器。但是我找不到在调用预测方法时使用 gpu 的方法。
任何帮助对我来说都是很好的。
示例代码:
basemodel = tensorflow.keras.applications.ResNet50(weights='imagenet', include_top=False, pooling="avg", input_shape=self.input_shape)
model = tensorflow.keras.models.Model(inputs=basemodel.input, outputs=basemodel.output)
img_data = img_to_array(image)
img_data = np.expand_dims(img_data, axis=0)
img_data = preprocess_input(img_data)
feature_vector = basemodel.predict(img_data)
我需要加快 basemodel.predict(img_data)
部分。
我可以为此目的使用 gpu 吗?
由于您从 tensorflow.keras 导入了模型,因此您无需更改代码即可使用 GPU。您应该只满足先决条件:https://www.tensorflow.org/install/gpu#software_requirements。
你可以检查你的程序是否看到一个 gpu 设备,如下所示:
import tensorflow as tf;
print("Num GPUs Available: ", len(tf.config.experimental.list_physical_devices('GPU')))
最后,您可以在终端
上使用命令nvidia-smi
检查gpu利用率运行
我正在使用 Resnet50 模型对图像进行矢量化以查找图像相似性。 为了提高程序的速度,我尝试了多处理,但由于 keras 的后端逻辑而失败了。 最后我是 运行 我在单机上的矢量化代码,它的性能还不错,但我需要更好的。为了减少这个矢量化操作消耗的时间,我可以使用我的 GPU 内置机器。但是我找不到在调用预测方法时使用 gpu 的方法。 任何帮助对我来说都是很好的。
示例代码:
basemodel = tensorflow.keras.applications.ResNet50(weights='imagenet', include_top=False, pooling="avg", input_shape=self.input_shape)
model = tensorflow.keras.models.Model(inputs=basemodel.input, outputs=basemodel.output)
img_data = img_to_array(image)
img_data = np.expand_dims(img_data, axis=0)
img_data = preprocess_input(img_data)
feature_vector = basemodel.predict(img_data)
我需要加快 basemodel.predict(img_data)
部分。
我可以为此目的使用 gpu 吗?
由于您从 tensorflow.keras 导入了模型,因此您无需更改代码即可使用 GPU。您应该只满足先决条件:https://www.tensorflow.org/install/gpu#software_requirements。 你可以检查你的程序是否看到一个 gpu 设备,如下所示:
import tensorflow as tf;
print("Num GPUs Available: ", len(tf.config.experimental.list_physical_devices('GPU')))
最后,您可以在终端
上使用命令nvidia-smi
检查gpu利用率运行