Beispiel #1
0
 def autosave(self, mode):
     if "interval" in mode:
         #if 0 == (self.current_epoch + 1) % self.save_interval:
         if 0 == self.current_epoch % self.save_interval:
             save_path = self.save_path + "/" + self.model.name + "-epoch-" + str(self.current_epoch) + ".pkl"
             VideoModel.save(self.model, save_path)
             logger.info("....Saving to " + os.path.abspath(save_path))
     if "best" in mode:
         if self.current_validation_error < self.best_validation_error:
             save_path = self.save_path + "/" + self.model.name + "-validation-best.pkl"
             VideoModel.save(self.model, save_path)
             logger.info("....Saving to " + os.path.abspath(save_path))
     if "final" in mode:
         if self.current_epoch == self.max_epoch:
             save_path = self.save_path + "/" + self.model.name + "-epoch-" + str(self.current_epoch) + ".pkl"
             VideoModel.save(self.model, save_path)
             logger.info("....Saving to " + os.path.abspath(save_path))
Beispiel #2
0
outputs = [{"name": "probability", "value": middle_layers[4].output}]
# error_layers = [cost_layer]

############################# model
param = {
    'interface_layer': interface_layer,
    'middle_layers': middle_layers,
    'cost_layer': cost_layer,
    'outputs': outputs,
    'errors': None,
    'last_n': seq_length,
    'name': "UCF101-VideoModel-Flow-LSTM-RMS",
    'problem_type': "classification"
}
model = VideoModel(param)
model.print_stat()

############################# optimizer
param = {
    'id': '1',
    'learning_rate': 0.001,
    'decay_rate': 0.9,
    'clip_threshold': None,
    'verbose': False,
    'max_epoch': 200,
    'start_epoch': 0,
    'valid_epoch': 20,
    'max_epochs_no_best': 200,
    'display_freq': 150,
    'valid_freq': None,
Beispiel #3
0
import random
import numpy

# In[2]:

############################# model config
src1_model_file = "../ucf101-experiment/ucf101-flow-convLSTM/rms-lr-0.001-drop-0.7/UCF101-VideoModel-Flow-convLSTM-RMS-validation-best.pkl"
src2_model_file = "../ucf101-experiment/ucf101-rgb-convALSTM/rms-lr-0.001-drop-0.7/UCF101-VideoModel-RGB-convALSTM-RMS-validation-best.pkl"
dst_model_file = "../ucf101-experiment/ucf101-rgb-motion-convALSTM/rms-lr-0.001-drop-0.7/UCF101-VideoModel-RGB-Motion-convALSTM-RMS-validation-best.pkl"
save_model_file = "../ucf101-experiment/ucf101-rgb-motion-convALSTM/rms-lr-0.001-drop-0.7/UCF101-VideoModel-RGB-Motion-convALSTM-RMS-initialization.pkl"

log_path = "model_assemble_ucf101_rgb_motion_convALSTM.log"
sparnn.utils.quick_logging_config(log_path)

############################# load model
src1_model = VideoModel.load(src1_model_file)
src1_model.print_stat()

src2_model = VideoModel.load(src2_model_file)
src2_model.print_stat()

dst_model = VideoModel.load(dst_model_file)
dst_model.print_stat()

# In[3]:

############################# model assemble
#copy_layers = range(len(src_model.middle_layers) -1 -1)
#for ii in copy_layers:
#    if len(src_model.middle_layers[ii].param)>0 and len(dst_model.middle_layers[ii].param)>0:
#        for src_param, dst_param in zip(src_model.middle_layers[ii].param, dst_model.middle_layers[ii].param):
                  'output_data_type': 'int64', 'one_hot_label': True,
                  'is_output_multilabel': False,
                  'name': 'ucf101-valid-video-ts-iterator'}
valid_iterator = VideoDataTsIterator(iterator_param)
valid_iterator.begin(do_shuffle=False)
valid_iterator.print_stat()
#
test_iterator = None

#############################
rng = sparnn.utils.quick_npy_rng()
theano_rng = sparnn.utils.quick_theano_rng(rng)

############################# load model
model_file = load_path + "UCF101-VideoModel-RGB-Motion-convALSTM-RMS-initialization.pkl"
model = VideoModel.load(model_file)
model.print_stat()

############################# optimizer
param = {'id': '1', 'learning_rate': 0.001, 'momentum': 0.9, 'decay_rate': 0.9, 'clip_threshold': None, 'verbose': False,
         'max_epoch': 400, 'start_epoch': 0, 'valid_epoch': 10, 'max_epochs_no_best': 400, 'decay_step': 400,
         'display_freq': 150, 'valid_freq': None, 'save_freq': None,
         'autosave_mode': ['interval', 'best'], 'save_path': save_path, 'save_interval': 10}
optimizer = RMSProp(model, train_iterator, valid_iterator, test_iterator, param)
#param = {'id': '1', 'learning_rate': 0.001, 'momentum': 0.9, 'decay_rate': 0.1, 'clip_threshold': 50, 'verbose': False,
#         'max_epoch': 300, 'start_epoch': 0, 'valid_epoch': 20, 'max_epochs_no_best': 300, 'decay_step': 100,
#         'display_freq': 150, 'valid_freq': None, 'save_freq': None,
#         'autosave_mode': ['interval', 'best'], 'save_path': save_path, 'save_interval': 20}
#optimizer = SGD(model, train_iterator, valid_iterator, test_iterator, param)

optimizer.train()