def manage_forms(request): if not request.user.is_staff: return HttpResponseForbidden('admin access required') return render(request, 'manage_forms.html', { 'formlist': json.dumps(util.get_latest()), })
def form_pull(request, study_id): study_id = int(study_id) study = Study.objects.get(id=study_id) errors = util.pull_latest(study.identifier) study_metadata = util.map_reduce(util.get_latest(), lambda s: [(s['id'], s)], lambda v: v[0])[study_id]['events'] payload = {'study_data': study_metadata, 'errors': errors} return HttpResponse(json.dumps(payload), 'text/json')
def run_training(self): self.log_path = os.path.join(self.logs_path, 'log.txt') binary_path = os.path.join(self.caffe_root, 'build/tools/caffe') # Check if there are any available snapshots and pick the # latest one for training continuation latest_snapshot = get_latest(self.snapshots_path, '*solverstate') if self.custom_command: training_string = 'srun --gres=gpu:1 {} 2>> {}'.format( self.custom_command, self.log_path) elif latest_snapshot: latest_snapshot = os.path.join(self.snapshots_path, latest_snapshot) training_string = ('srun --gres=gpu:1 ' '{} train ' '--solver={} ' '--snapshot={} ' '--gpu={} 2>> {}').format( binary_path, self.solver_path, latest_snapshot, GPU_ID, self.log_path) else: if self.experiment['weights']: weights_string = '--weights=' + self.experiment['weights'] else: weights_string = '' training_string = ('srun --gres=gpu:1 ' '{} train ' '--solver={} {} ' '--gpu={} 2>> {}').format( binary_path, self.solver_path, weights_string, GPU_ID, self.log_path) file(os.path.join(self.path, 'training_string.txt'), 'w').write(training_string) self.training_process = subprocess.Popen(training_string, stdin=subprocess.PIPE, shell=True, preexec_fn=os.setsid)
def run_training(self): self.log_path = os.path.join(self.logs_path, 'log.txt') binary_path = os.path.join(self.caffe_root, 'build/tools/caffe') # Check if there are any available snapshots and pick the # latest one for training continuation latest_snapshot = get_latest(self.snapshots_path, '*solverstate') if self.custom_command: training_string = 'srun --gres=gpu:1 {} 2>> {}'.format( self.custom_command, self.log_path) elif latest_snapshot: latest_snapshot = os.path.join(self.snapshots_path, latest_snapshot) training_string = ( 'srun --gres=gpu:1 ' '{} train ' '--solver={} ' '--snapshot={} ' '--gpu={} 2>> {}').format( binary_path, self.solver_path, latest_snapshot, GPU_ID, self.log_path) else: if self.experiment['weights']: weights_string = '--weights=' + self.experiment['weights'] else: weights_string = '' training_string = ( 'srun --gres=gpu:1 ' '{} train ' '--solver={} {} ' '--gpu={} 2>> {}').format( binary_path, self.solver_path, weights_string, GPU_ID, self.log_path) file(os.path.join(self.path, 'training_string.txt'), 'w').write(training_string) self.training_process = subprocess.Popen(training_string, stdin=subprocess.PIPE, shell=True, preexec_fn=os.setsid)
def get_studies(request): util.get_studies() return HttpResponse(json.dumps(util.get_latest()), 'text/json')