использовать сохраненную обученную модель для прогнозирования нового набора данных - PullRequest
0 голосов
/ 28 августа 2018

Я использую theano, sklearn и numpy в Python. Я нашел этот код для сохранения моей обученной сети и прогнозирования нового набора данных по этой ссылке https://github.com/lzhbrian/RBM-DBN-theano-DL4J/blob/master/src/theano/code/logistic_sgd.py. часть кода, которую я использую, такова:

"""
An example of how to load a trained model and use it
to predict labels.
"""
def predict():
# load the saved model
classifier = pickle.load(open('best_model.pkl'))

# compile a predictor function
predict_model = theano.function(
inputs=[classifier.input],
outputs=classifier.y_pred)

# We can test it on some examples from test test
dataset='mnist.pkl.gz'
datasets = load_data(dataset)
test_set_x, test_set_y = datasets[2]
test_set_x = test_set_x.get_value()

predicted_values = predict_model(test_set_x[:10])
print("Predicted values for the first 10 examples in test set:")
print(predicted_values)

if __name__ == '__main__':
sgd_optimization_mnist()

Код для модели нейронной сети, которую я хочу сохранить, загрузить и предсказать, это https://github.com/aseveryn/deep-qa. Я мог бы сохранить и загрузить модель с помощью cPickle, но я постоянно получаю ошибки в # compile a predictor function part:

predict_model = theano.function(inputs=[classifier.input],outputs=classifier.y_pred)

На самом деле я не уверен, что мне нужно вводить в соответствии с моим кодом. Какой из них прав?

inputs=[main.predict_prob_batch.batch_iterator],  outputs=test_nnet.layers[-1].
y_pred)

inputs=[predict_prob_batch.batch_iterator],
outputs=test_nnet.layers[-1].y_pred)

inputs=[MiniBatchIteratorConstantBatchSize.dataset],
outputs=test_nnet.layers[-1].y_pred)

inputs=[
sgd_trainer.MiniBatchIteratorConstantBatchSize.dataset],
outputs=test_nnet.layers[-1].y_pred)

или ни один из них ???

Каждый из них, которые я пробовал, получал ошибки:

ImportError: Нет модуля с именем MiniBatchIteratorConstantBatchSize

или

NameError: глобальное имя 'Предикат_проц_бата' не определено

Я был бы очень признателен, если бы вы могли мне помочь. Я также использовал эти команды для запуска кода, но все равно ошибки.

python -c 'from run_nnet import predict; from sgd_trainer import MiniBatchIteratorConstantBatchSize; from MiniBatchIteratorConstantBatchSize import dataset; print predict()'


python -c 'from run_nnet import predict; from sgd_trainer import *; from MiniBatchIteratorConstantBatchSize import dataset; print predict()'

Спасибо и дайте мне знать, если вы знаете лучший способ прогнозирования нового набора данных в загруженной обученной модели.

...