如何导入训练好的tensorflow model 并用其来预测自己的数据?

在使用tensorflow时,经常需要用别人训练好的模型来预测我们自己我们自己的数据。一般分为轻量级的保存参数和保存整个模型。使用保存weights 可以参考本人另外一篇博客。

这儿主要介绍导入别人训练好的以h5格式保存的model并用其预测自己的数据:

1. 导入库

import tensorflow as tf
from tensorflow.keras import datasets, layers, optimizers, Sequential, metrics
import pandas as pd
import numpy as np

2.导入别人保存好的model

final_model = tf.keras.models.load_model("saved_model.h5", compile=True) #  注意这儿得compile需要设置为true,如果你不设置你需要多一步compile的过程。

3. 导入你自己的数据

 plas=np.loadtxt("whole_genomewalk/plas_com.txt",dtype="int32")

4. 开始预测

>>> plas_prob=final_model.predict(plas) # 预测
# 查看前10个样本的预测概率。由于这个model是预测二分类,输出结果是正分类样本的概率。如果是多分类模型,预测结果是每个分类对应的概率。
>>> plas_prob[:10] 
array([[0.9499076 ],
       [0.966307  ],
       [0.8369276 ],
       [0.88482785],
       [0.9329413 ],
       [0.9565406 ],
       [0.95790464],
       [0.89393246],
       [0.9659232 ],
       [0.04010561]], dtype=float32)

5. 概率转化为分类结果

>>>plas_result=np.ones(plas_prob.shape[0]) # 假设所有样本都是正分类1
>>> plas_result
array([1., 1., 1., ..., 1., 1., 1.])
>>> plas_result[plas_prob.ravel()<0.5]=0 # 将概率p<0.5 的样本换算成负分类样本0

你可能感兴趣的:(Tensorflow,机器学习)