Я использовал код, приведенный на https://github.com/Microsoft/CNTK/blob/v2.0/Examples/SequenceClassification/SimpleExample/Python/SequenceClassification.py для обучения модели. Как я могу это оценить?
Как оценить модель CNTK, обученную с использованием примера кода SequenceClassification
Ответы (3)
Если вы хотите оценить модель в Python, перейдите на страницу здесь. Если вы хотите использовать свою модель на других языках, например. C++/C#, вы можете найти подробности в оценке модели а> страница.
Спасибо,
person
Zhou
schedule
26.06.2017
это было не очень ясно из тех страниц. Я добавил способ, которым я, наконец, решил это.
- person Bit Manipulator; 27.06.2017
Связанный пример Python предполагает, что мы используем numpy для ввода, и оценивает только один пример. Как мы можем пакетно оценить помеченный файл проверки в формате ctf?
- person Robert Sim; 29.08.2017
Я получил это следующим образом:
import cntk as C
from cntk.ops.functions import load_model # Note this
...
...
# saved the model after epochs
for i in range(500):
mb = reader.next_minibatch(minibatch_size, input_map=input_map)
trainer.train_minibatch(mb)
classifier_output.save("model.dnn") # Note this
...
...
# loading the model
model = load_model("model.dnn") # Note this
# converted sentence to numbers and given as sequence
predScores = model(C.Value.one_hot([[1,238,4,4990,7223,1357,2]], 50466)) # Note this
predClass = np.argmax(predScores)
print(predClass)
где [[1,238,4,4990,7223,1357,2]]
— это последовательность индексов слов в словарях (в основном вид последовательности, на которой происходило обучение, а 50466
— размер словаря.
person
Bit Manipulator
schedule
27.06.2017
Этот ответ хорош, но было бы лучше, если бы он продемонстрировал, как привязать читателя к оценке. Я не могу найти пример, который читает файл ctf, оценивает примеры с использованием модели и выводит прогнозы и необработанные оценки.
- person Robert Sim; 29.08.2017
Маловероятно, что при обучении модели в CNTK вам не нужно использовать атрибуты create_reader/Minibatch. В основном потому, что тестовые/рабочие файлы обычно довольно маленькие. Оценка модели на самом деле довольно проста:
import cntk as C
import pandas as pd
import numpy as np
model = C.load_model(path_to_where_the_model_is_saved) # load your CNTK model
ds = pd.read_csv(filename, delimiter=",") # load your data of course
# we are assuming all data come
# together in a single matrix
X = ds.values[:,0:28].astype('float32') # ensures the right type for CNTK
Y = ds.values[:,28].astype('float32') # last column is the label
X= X / 255 # perform any necessary transformation if any
pred = model(X) # evaluate your test data
pred[pred > 0.5]=1
pred[pred!=1]=0
maxa=np.mean(Y==pred)
print("Accuracy {} ".format(maxa*100.0))
person
agcala
schedule
09.01.2019