資源簡介
使用訓練好的模型進行預測,可以與我的模型訓練和保存配套使用
代碼片段和文件信息
#!/usr/bin/env?python
#?-*-?coding:?utf-8?-*-
#?Author:?Yyb
#?@Time:?2018/12/29?14:51
from?paddle?import?fluid
import?paddle
import?numpy?as?np
import?struct
from?skimage?import?io?transform
import?time
import?os
import?shutil
from?PIL?import?Image
#?創建執行器
place?=?fluid.CPUPlace()
exe?=?fluid.Executor(place)
exe.run(fluid.default_startup_program())
#?保存預測模型路徑
save_path?=?‘models/infer_model/‘
#?從模型中獲取預測程序、輸入數據名稱列表、分類器
[infer_program?feeded_var_names?target_var]?=?fluid.io.load_inference_model(dirname=save_path?executor=exe)
def?load_image(file):
????image?=?io.imread(file?as_gray=True)??#?直接讀取的數據是高、寬、通道格式的
????image_shape?=?image.shape
????image?=?transform.resize(image?(28?28))??#?縮放是有損的
????image?=?np.array(image).astype(np.float32)
????#?print(image)
????return?image.reshape(1?1?28?28)??#?預測的shape是(batch數,通道數,寬度,高度)
#?加載數據并開始預測
img?=?load_image(r‘D:\always_use\data_shopper\digits_picture\infer_3.png‘)
#?讀取單張圖片進行預測
results?=?exe.run(program=infer_program
??????????????????feed={feeded_var_names[0]:?img}
??????????????????fetch_list=target_var)
#?獲取概率最大的標簽
lab?=?np.argsort(results)[0][0]
for?i?in?lab:
????print(‘預測結果為:{},?概率為:{}‘.format(i?results[0][0][i]))
lab_1?=?np.argsort(results)[0][0][-1]
print(‘預測結果為:{},實際值為:3,?概率為:{}‘.format(lab_1?results[0][0][lab_1]))
print(‘***************‘)
#?獲取mnist數據進行預測
def?reader_mnist_test(data_path?n_start?n_end):??#?mnist測試集的讀取器
????#?讀取mnist測試集標簽
????def?decode_idx1_ubyte(idx1_ubyte_file):
????????with?open(idx1_ubyte_file?‘rb‘)?as?
- 上一篇:python 打磚塊源代碼
- 下一篇:DoS攻擊Python源碼
評論
共有 條評論