Пример #1
0
 def obj_func(obj_ws_lf, obj_ws_rf):
     (transform_lh, transform_rh) = form_transformation_matrix_loo.transform(args_tmp, obj_ws_lf, obj_ws_rf,
                                                                             align_data_lh, align_data_rh,
                                                                             args_tmp.nsubjs)
     obj_val_tmp = 0
     for m in range(args_tmp.nsubjs):
         if args_tmp.align_algo in ['ha','ha_sm_retraction']:
             obj_val_tmp += np.linalg.norm(transform_lh[:, :, m].T.dot(align_data_lh[:, :, m]) - obj_ws_lf['G'].T, 'fro')
             obj_val_tmp += np.linalg.norm(transform_rh[:, :, m].T.dot(align_data_rh[:, :, m]) - obj_ws_rf['G'].T, 'fro')
         elif args_tmp.align_algo in ['ha_syn','pha_em','ha_syn_noagg']:
             obj_val_tmp += np.linalg.norm(align_data_lh[:, :, m] - transform_lh[:, :, m].dot(obj_ws_lf['G'].T), 'fro')
             obj_val_tmp += np.linalg.norm(align_data_rh[:, :, m] - transform_rh[:, :, m].dot(obj_ws_rf['G'].T), 'fro')
     return obj_val_tmp
Пример #2
0
    # make sure right and left brain alignment are working at the same iterations

  if args.align_algo in ['pica','ppca']:
    new_niter = 10

  # load transformation matrices
  if args.align_algo != 'noalign' :
    workspace = np.load(options['working_path']+args.align_algo+'__'+str(new_niter)+'.npz')
    workspace2 = np.load(options['working_path']+args.align_algo+'__'+str(new_niter)+'.npz')
    # load transformation matrices into transform_lrh for projecting testing data
    if args.loo == None:
      (transform, tmp) = form_transformation_matrix.transform(args,
                                     workspace, workspace2, nsubjs)
    else:
      (transform, tmp) = form_transformation_matrix_loo.transform(args,
                                     workspace, workspace2,
                                     align_data, copy.deepcopy(align_data), nsubjs)
    workspace.close()
    workspace2.close()
  else:
    new_niter = 10
    (transform, tmp) = form_transformation_matrix_noalign.transform(args, nsubjs)


  # transformed mkdg data with learned transformation matrices
  transformed_data = np.zeros((args.nfeature , nTR_pred ,nsubjs))

  for m in range(nsubjs):
    trfed_tmp = transform[:,:,m].T.dot(pred_data[:,:,m])
    transformed_data[:,:,m] = stats.zscore( trfed_tmp.T ,axis=0, ddof=1).T
    #transformed_data[:,:,m] = trfed_tmp
Пример #3
0
    # load transformation matrices
    if args.align_algo != 'noalign':
        workspace_lh = np.load(options['working_path'] + args.align_algo +
                               '_lh_' + str(new_niter_lh) + '.npz')
        workspace_rh = np.load(options['working_path'] + args.align_algo +
                               '_rh_' + str(new_niter_rh) + '.npz')
        # load transformation matrices into transform_lrh for projecting testing data
        if args.loo == None:
            (transform_lh,
             transform_rh) = form_transformation_matrix.transform(
                 args, workspace_lh, workspace_rh, nsubjs)
        else:
            (transform_lh,
             transform_rh) = form_transformation_matrix_loo.transform(
                 args, workspace_lh, workspace_rh, align_data_lh,
                 align_data_rh, nsubjs)
    else:
        new_niter_lh = new_niter_rh = 10
        (transform_lh,
         transform_rh) = form_transformation_matrix_noalign.transform(
             args, nsubjs)

    # transformed mkdg data with learned transformation matrices
    transformed_data = np.zeros((args.nfeature * 2, nTR_pred, nsubjs))

    for m in range(nsubjs):
        trfed_lh_tmp = transform_lh[:, :, m].T.dot(pred_data_lh[:, :, m])
        #np.savez_compressed(options['working_path']+args.align_algo+'_trfed_lh_'+str(new_niter_lh)+'.npz',trfed_lh = trfed_lh_tmp)
        trfed_rh_tmp = transform_rh[:, :, m].T.dot(pred_data_rh[:, :, m])
        #np.savez_compressed(options['working_path']+args.align_algo+'_trfed_rh_'+str(new_niter_lh)+'.npz',trfed_rh = trfed_rh_tmp)
Пример #4
0

  if args.align_algo in ['pica','ppca']:
    new_niter_lh = new_niter_rh = 10

  # load transformation matrices
  if args.align_algo != 'noalign' :
    workspace_lh = np.load(options['working_path']+args.align_algo+'_lh_'+str(new_niter_lh)+'.npz')
    workspace_rh = np.load(options['working_path']+args.align_algo+'_rh_'+str(new_niter_rh)+'.npz')
    # load transformation matrices into transform_lrh for projecting testing data
    if args.loo == None:
      (transform_lh, transform_rh) = form_transformation_matrix.transform(args, 
                                     workspace_lh, workspace_rh, nsubjs)
    else:
      (transform_lh, transform_rh) = form_transformation_matrix_loo.transform(args, 
                                     workspace_lh, workspace_rh, 
                                     align_data_lh, align_data_rh, nsubjs)
  else:
    new_niter_lh = new_niter_rh = 10
    (transform_lh, transform_rh)=form_transformation_matrix_noalign.transform(args,nsubjs)

  # transformed mkdg data with learned transformation matrices
  transformed_data = np.zeros((args.nfeature*2 , nTR_pred ,nsubjs))

  for m in range(nsubjs):
    trfed_lh_tmp = transform_lh[:,:,m].T.dot(pred_data_lh[:,:,m])
    trfed_rh_tmp = transform_rh[:,:,m].T.dot(pred_data_rh[:,:,m])
    transformed_data[:,:,m] = stats.zscore( np.vstack((trfed_lh_tmp,trfed_rh_tmp)).T ,axis=0, ddof=1).T

  # experiment
  if args.exptype == 'imgpred':