示例#1
0
 v_dim = len(v_xs[0])
 som_a = SOM(5,
             5,
             a_dim,
             checkpoint_dir=soma_path,
             n_iterations=100,
             batch_size=4)
 som_v = SOM(5,
             5,
             v_dim,
             checkpoint_dir=somv_path,
             n_iterations=100,
             batch_size=4)
 som_a.train(a_xs)
 som_v.train(v_xs)
 som_a.memorize_examples_by_class(a_xs, a_ys)
 som_v.memorize_examples_by_class(v_xs, v_ys)
 hebbian_model = HebbianModel(som_a,
                              som_v,
                              a_dim=a_dim,
                              v_dim=v_dim,
                              n_presentations=1,
                              learning_rate=1,
                              n_classes=n_classes,
                              checkpoint_dir=hebbian_path)
 print('Training...')
 hebbian_model.train(a_xs, v_xs)
 print('Evaluating...')
 accuracy = hebbian_model.evaluate(a_xs,
                                   v_xs,
                                   a_ys,
示例#2
0
 for n in range(1, 15):
     hebbian_model = HebbianModel(som_a,
                                  som_v,
                                  a_dim=a_dim,
                                  v_dim=v_dim,
                                  n_presentations=n,
                                  checkpoint_dir=hebbian_path,
                                  learning_rate=args.lr)
     a_xs_fold, v_xs_fold, a_ys_fold, v_ys_fold = create_folds(a_xs_train,
                                                               v_xs_train,
                                                               a_ys_train,
                                                               v_ys_train,
                                                               n_folds=n)
     # prepare the soms for alternative matching strategies - this is not necessary
     # if prediction_alg='regular' in hebbian_model.evaluate(...) below
     som_a.memorize_examples_by_class(a_xs_train, a_ys_train)
     som_v.memorize_examples_by_class(v_xs_train, v_ys_train)
     print('Training...')
     hebbian_model.train(a_xs_fold, v_xs_fold)
     print('Evaluating...')
     accuracy_a = hebbian_model.evaluate(a_xs_test,
                                         v_xs_test,
                                         a_ys_test,
                                         v_ys_test,
                                         source='a',
                                         prediction_alg=args.algo)
     accuracy_v = hebbian_model.evaluate(a_xs_test,
                                         v_xs_test,
                                         a_ys_test,
                                         v_ys_test,
                                         source='v',