我試圖讓我的分類過程更快一點。我想增加我的deploy.prototxt中的第一個input_dim,但這似乎不起作用。它甚至比逐一分類每個圖像慢一點。批量大小不適用於caffe with deploy.prototxt
deploy.prototxt
input: "data"
input_dim: 128
input_dim: 1
input_dim: 120
input_dim: 160
... net description ...
蟒蛇淨初始化
net=caffe.Net('deploy.prototxt', 'model.caffemodel', caffe.TEST)
net.blobs['data'].reshape(128, 1, 120, 160)
transformer = caffe.io.Transformer({'data':net.blobs['data'].data.shape})
#transformer settings
蟒蛇分類
images=[None]*128
for i in range(len(images)):
images[i]=caffe.io.load_image('image_path', False)
for j in range(len(images)):
net.blobs['data'].data[j,:,:,:] = transformer.preprocess('data',images[j])
out = net.forward()['prob']
我跳過一些細節,但更重要的事情應該放在首位。我嘗試了不同的批量大小,例如32,64,...,1024但都幾乎相同。所以我的問題是,如果有人知道我做錯了什麼或需要改變什麼? 感謝您的幫助!
編輯:
一些計時結果,平均時間只是處理圖像(1044)分配的總時間。
批量大小:1
2016年5月4日10:51:20721 - 檢測器 - INFO - 數據形狀:(1,1,120,160)
2016年5月4日10: 51:35149 - 主 - INFO - GPU定時:
2016年5月4日10:51:35149 - 主 - INFO - 處理的圖像:1044
2016年5月4日10:51:35149 - 主要 - 信息 - 總時間:14.43s
2016-05-04 10 :51:35149 - 主 - INFO - 平均時間:13.82ms
2016年5月4日10:51:35149 - 主 - INFO - 負載時間:8.31s
2016年5月4日10 :51:35149 - 主 - INFO - 平均的負載時間:7.96ms
2016年5月4日10:51:35149 - 主 - INFO - 分類 - 時間:5.99s
2016-05- 04 10:51:35,149 - main - INFO - avg-classify-time:5.74ms
批量大小:32
2016年5月4日10:52:30773 - 檢測器 - INFO - 數據形狀:(32,1,120,160)
2016年5月4日10:52:45135 - 主 - INFO - GPU定時:
2016年5月4日10:52:45135 - 主 - INFO - 處理的圖像:1044
2016年5月4日10:52:45135 - 主 - INFO - 總時間:14.36s
2016-05-04 10:52:45,136 - 主要 - 信息 - 平均時間:13.76米s
2016-05-04 10:52:45,136 - main - INFO - 加載時間:7。13S
2016年5月4日10:52:45136 - 主 - INFO - 平均的負載時間:6.83ms
2016年5月4日10:52:45136 - 主 - INFO - 分類 - 時間:7.13s
2016年5月4日10:52:45136 - 主 - INFO - 平均-分類時間:6.83ms
批量大小:128
2016-05- 04 10:53:17,478 - 檢測器 - 信息 - 數據形狀:(128,1,12 0,160)
2016年5月4日10:53:31299 - 主 - INFO - GPU定時:
2016年5月4日10:53:31299 - 主 - INFO - 處理的圖像:1044
2016年5月4日10:53:31299 - 主 - INFO - 總時間:13.82s
2016年5月4日10:53:31299 - 主 - INFO - 平均時間:13.24ms
2016-05-04 10:53:31,299 - main - INFO - 加載時間:7.06s
2016-05-04 10:53:31,299 - 主 - INFO - 平均的負載時間:6.77ms
2016年5月4日10:53:31299 - 主 - INFO - 分類 - 時間:6.66s
2016年5月4日10時53分: 31299 - 主 - INFO - 平均-分類時間:6.38ms
批量大小:1024
2016年5月4日10:54:11546 - 檢測器 - INFO - 數據形狀: (1024,1,120,160)
2016-05-04 10:54:25,316 - 主 - INFO - GPU定時:
2016年5月4日10:54:25316 - 主 - INFO - 處理的圖像:1044
2016年5月4日10:54:25316 - 主 - INFO - 總時間:13.77s
2016年5月4日10:54:25316 - 主 - INFO - 平均時間:13.19ms
2016年5月4日10:54:25316 - 主 - INFO - 加載時間:7.04s
2016-05-04 10:54:25,316 - 主要 - 信息 - 平均加載時間:6.75ms
2016年5月4日10:54:25316 - 主 - INFO - 分類 - 時間:6.63s
2016年5月4日10:54:25316 - 主 - INFO - 平均-分類時間: 6.35ms
您使用的GPU或CPU? – Shai
我正在使用GPU:nvidia GTX980 Ti – Feuerteufel
你是什麼意思「幾乎相同」?無論'batch_size'如何,'net.forward()'的運行時間是相同的,或者'batch_size'的運行時間*劃分是「幾乎相同」?你可以在這裏輸入一些數字嗎? – Shai