image-processing - 在使用 keras Resnet50 进行预测时使用 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 利用率
推荐阅读
- scala - 将用 SCALA 编写的 Spark UDF 转换为 JAVA
- python - dict变量后的方括号是什么意思
- python - Youtube 下载进度条问题
- reactjs - 未捕获的错误:目标容器不是 DOM 元素。在反应
- tensorflow - 更改图像标题模型中的标记名称会影响性能吗?
- ios - 快速使用计时器
- keras - ValueError:两个形状中的维度 1 必须相等,但分别为 10 和 1
- python - Python - 比较 2 列和 2 行中的 TS
- ssh - Ansible 无法通过 SSH 连接到远程主机:“控制路径不存在”和“mux_client_read_packet: read header failed: Broken pipe”
- chromium - Chromium 如何定义系统文件?