<SYSTEM_TASK:>
Given the following text description, write Python code to implement the functionality described below step by step
<END_TASK>
<USER_TASK:>
Description:
 This notebook investigates alexnet-based model with normalisation and a new learning rate schedule.
The changes made include
Step1:  Just to make sure nothing goes wrong with reads/writes (as this model takes a lot less time per epoch), get a backup of the best model so far.
Now check score of our model
Step2:  Was hoping for a better score there... Check how many epochs each model saw
Step3:  Let it run a little longer.
Check again, best file first
Step4:  And the most recent now
Step5:  The score it gets on the holdout set is
Step6:  It got worse!
Now check scores of two models with only number of saturating epoch changed. One monitored valid_y_nll, another valid_objective.
<ASSISTANT_TASK:>
Python Code:
cd ..
%run check_test_score.py -v run_settings/alexnet_based_norm_global.json
Explanation: This notebook investigates alexnet-based model with normalisation and a new learning rate schedule.
The changes made include: increasing the number of epochs on which learning rate and momentum saturate to 250 (instead of original 25); making scaling factors of the learning rate smaller (shrink_amt = 0.99 instead of 0.9 and grow_amt = 1.01 instead 1.1); and monitoring valid_y_nll. Both best and most recent models are saved.
Quite soon, valid_y_nll started looking pretty good. Let's check the score. But first, we want to know what to compare it to. Looking at the equivalent model with original learning rate schedule (alexnet_based_norm_global.pkl):
End of explanation
%run check_test_score.py -v run_settings/alexnet_learning_rate.json
Explanation: Just to make sure nothing goes wrong with reads/writes (as this model takes a lot less time per epoch), get a backup of the best model so far.
Now check score of our model:
End of explanation
%matplotlib inline
%run ~/Neuroglycerin/pylearn2/pylearn2/scripts/plot_monitor.py /disk/scratch/neuroglycerin/models/alexnet_based_norm_global.pkl
%run ~/Neuroglycerin/pylearn2/pylearn2/scripts/plot_monitor.py /disk/scratch/neuroglycerin/models/alexnet_learning_rate.pkl.backup
Explanation: Was hoping for a better score there... Check how many epochs each model saw:
End of explanation
%run ~/Neuroglycerin/pylearn2/pylearn2/scripts/plot_monitor.py /disk/scratch/neuroglycerin/models/alexnet_learning_rate.pkl
Explanation: Let it run a little longer.
Check again, best file first:
End of explanation
%run ~/Neuroglycerin/pylearn2/pylearn2/scripts/plot_monitor.py /disk/scratch/neuroglycerin/models/alexnet_learning_rate_recent.pkl
Explanation: And the most recent now:
End of explanation
%run check_test_score.py -v run_settings/alexnet_learning_rate.json
Explanation: The score it gets on the holdout set is:
End of explanation
%run check_test_score.py -v run_settings/alexnet_learning_rate2.json
%run check_test_score.py -v run_settings/alexnet_learning_rate3.json
Explanation: It got worse!
Now check scores of two models with only number of saturating epoch changed. One monitored valid_y_nll, another valid_objective.
End of explanation
<END_TASK>