Я использую 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()'
Спасибо и дайте мне знать, если вы знаете лучший способ прогнозирования нового набора данных в загруженной обученной модели.