亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用 TensorFlow 模型評估輸入的簡單方法?

使用 TensorFlow 模型評估輸入的簡單方法?

猛跑小豬 2023-07-11 16:18:41
在這里,我有一個使用生成的數據訓練的增強決策樹,并保存為est:from sklearn.datasets import make_blobsimport pandas as pdimport tensorflow as tf#creates an input function for a tf modeldef make_input_fn(X, Y, n_epochs=None, shuffle=True, verbose=False):    batch_len = len(Y)    def input_fn():        dataset = tf.data.Dataset.from_tensor_slices((dict(X), Y))        if shuffle:            dataset = dataset.shuffle(batch_len)        # For training, cycle thru dataset as many times as need (n_epochs=None).        dataset = dataset.repeat(n_epochs)        #dividing data into batches        dataset = dataset.batch(batch_len)        return dataset    return input_fn#making datatrainX, trainY = make_blobs(n_samples=10, centers=2, n_features=3, random_state=0)#xValstrainX = pd.DataFrame(trainX)trainX.columns = ['feature{}'.format(num) for num in trainX.columns]#yValstrainY = pd.DataFrame(trainY)trainY.columns = ['flag']# Defining input functiontrain_input_fn = make_input_fn(trainX, trainY)#defining tf feature columnsfeature_columns=[]for feature_name in list(trainX.columns):    feature_columns.append(tf.feature_column.numeric_column(feature_name,dtype=tf.float32))    #creating the estimatorn_batches = 1est = tf.estimator.BoostedTreesClassifier(feature_columns, n_batches_per_layer=n_batches)est.train(train_input_fn, max_steps=10)我想使用該模型根據一行訓練數據進行預測以用于測試目的;像這樣的事情:res = est.predict(trainX.loc[0])但是,我很難弄清楚如何去做。
查看完整描述

1 回答

?
慕哥6287543

TA貢獻1831條經驗 獲得超10個贊

您必須像訓練時一樣創建輸入函數。

代碼:


def my_input_fn(features, batch_size=256):

    """An input function for prediction."""

    # Convert the inputs to a Dataset without labels.

    return tf.data.Dataset.from_tensor_slices(dict(features)).batch(batch_size)


testX = pd.DataFrame(trainX.loc[0]).T


predictions = est.predict(

    input_fn=lambda: my_input_fn(testX))

預測將為您提供一個生成器對象。你必須迭代它才能獲得預測


for pred_dict in predictions:

    class_id = pred_dict['class_ids'][0]

    probability = pred_dict['probabilities'][class_id]

    print(class_id, probability)

class_id是預測的ID。


請注意,pred_dict 還包含其他信息。


以下是 pred_dict 中包含的信息:


{'all_class_ids': array([0, 1]),

 'all_classes': array([b'0', b'1'], dtype=object),

 'class_ids': array([0], dtype=int64),

 'classes': array([b'0'], dtype=object),

 'logistic': array([0.17926924], dtype=float32),

 'logits': array([-1.5213063], dtype=float32),

 'probabilities': array([0.82073075, 0.17926925], dtype=float32)}


查看完整回答
反對 回復 2023-07-11
  • 1 回答
  • 0 關注
  • 127 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號