Skip to content

Commit 71e24f2

Browse files
author
Julian Kates-Harbeck
committed
merge
2 parents 1db9bca + bc1001c commit 71e24f2

File tree

6 files changed

+50
-44
lines changed

6 files changed

+50
-44
lines changed

data/signals.py

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -206,20 +206,18 @@ def fetch_nstx_data(signal_path,shot_num,c):
206206
#}
207207

208208
#Restricted subset to those signals that are present for most shots. The idea is to remove signals that cause many shots to be dropped from the dataset.
209-
all_signals = {'q95':q95,'li':li,'ip':ip,
210-
'betan':betan,'energy':energy,'lm':lm,'dens':dens,
211-
'pradcore':pradcore,'pradedge':pradedge,'pradtot':pradtot,
212-
'pin':pin,'torquein':torquein,
213-
'energydt':energydt,
214-
'ipdirect':ipdirect,'iptarget':iptarget,'iperr':iperr,
209+
all_signals = {'q95':q95,'li':li,'ip':ip,'betan':betan,'energy':energy,'lm':lm,'dens':dens,'pradcore':pradcore,
210+
'pradedge':pradedge,'pradtot':pradtot,'pin':pin,
211+
'torquein':torquein,
212+
'energydt':energydt,'ipdirect':ipdirect,'iptarget':iptarget,'iperr':iperr,
215213
#'tmamp1':tmamp1,'tmamp2':tmamp2,'tmfreq1':tmfreq1,'tmfreq2':tmfreq2,'pechin':pechin,
216214
# 'rho_profile_spatial':rho_profile_spatial,'etemp_profile_spatial':etemp_profile_spatial,'edens_profile_spatial':edens_profile_spatial,'etemp':etemp
217-
'etemp_profile':etemp_profile,'edens_profile':edens_profile,
218-
'itemp_profile':itemp_profile,'zdens_profile':zdens_profile}
215+
'etemp_profile':etemp_profile,'edens_profile':edens_profile}
216+
#'itemp_profile':itemp_profile,'zdens_profile':zdens_profile}
219217
#'trot_profile':trot_profile,'pthm_profile':pthm_profile,
220218
#'neut_profile':neut_profile,'q_profile':q_profile,
221219
#'bootstrap_current_profile':bootstrap_current_profile,
222-
#'q_psi_profile':q_psi_profile
220+
#'q_psi_profile':q_psi_profile}
223221
#}
224222

225223
#new signals are not downloaded yet

examples/performance_analysis.py

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -39,17 +39,18 @@
3939

4040
analyzer.summarize_shot_prediction_stats_by_mode(P_thresh_opt,'test')
4141

42-
analyzer.example_plots(P_thresh_opt,'test','any')
43-
analyzer.example_plots(P_thresh_opt,'test',['FP'],extra_filename='test')
44-
analyzer.example_plots(P_thresh_opt,'test',['FN'],extra_filename='test')
45-
analyzer.example_plots(P_thresh_opt,'test',['TP'],extra_filename='test')
46-
analyzer.example_plots(P_thresh_opt,'test',['late'],extra_filename='test')
47-
48-
analyzer.example_plots(P_thresh_opt,'train',['TN'],extra_filename='train')
49-
analyzer.example_plots(P_thresh_opt,'train',['FP'],extra_filename='train')
50-
analyzer.example_plots(P_thresh_opt,'train',['FN'],extra_filename='train')
51-
analyzer.example_plots(P_thresh_opt,'train',['TP'],extra_filename='train')
52-
analyzer.example_plots(P_thresh_opt,'train',['late'],extra_filename='train')
42+
normalize = True
43+
analyzer.example_plots(P_thresh_opt,'test','any',normalize=normalize)
44+
analyzer.example_plots(P_thresh_opt,'test',['FP'],extra_filename='test',normalize=normalize)
45+
analyzer.example_plots(P_thresh_opt,'test',['FN'],extra_filename='test',normalize=normalize)
46+
analyzer.example_plots(P_thresh_opt,'test',['TP'],extra_filename='test',normalize=normalize)
47+
analyzer.example_plots(P_thresh_opt,'test',['late'],extra_filename='test',normalize=normalize)
48+
49+
analyzer.example_plots(P_thresh_opt,'train',['TN'],extra_filename='train',normalize=normalize)
50+
analyzer.example_plots(P_thresh_opt,'train',['FP'],extra_filename='train',normalize=normalize)
51+
analyzer.example_plots(P_thresh_opt,'train',['FN'],extra_filename='train',normalize=normalize)
52+
analyzer.example_plots(P_thresh_opt,'train',['TP'],extra_filename='train',normalize=normalize)
53+
analyzer.example_plots(P_thresh_opt,'train',['late'],extra_filename='train',normalize=normalize)
5354

5455

5556
alarms,disr_alarms,nondisr_alarms = analyzer.gather_first_alarms(P_thresh_opt,'test')

examples/slurm.cmd

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,20 +5,22 @@
55
#SBATCH --ntasks-per-socket=2
66
#SBATCH --gres=gpu:4
77
#SBATCH -c 4
8+
#SBATCH --mem-per-cpu=0
89

9-
10+
export PYTHONHASHSEED=0
1011
module load anaconda
12+
source activate pppl
1113
module load cudatoolkit/8.0
12-
module load openmpi/intel-17.0/2.1.0/64 intel/17.0/64/17.0.4.196 intel-mkl/2017.3/4/64
1314
module load cudnn/cuda-8.0/6.0
14-
source activate PPPL
15+
module load openmpi/cuda-8.0/intel-17.0/2.1.0/64
16+
module load intel/17.0/64/17.0.4.196 intel-mkl/2017.3/4/64
1517

1618
#remove checkpoints for a benchmark run
17-
rm /tigress/alexeys/model_checkpoints/*
18-
rm /tigress/alexeys/results/*
19-
rm /tigress/alexeys/csv_logs/*
20-
rm /tigress/alexeys/Graph/*
21-
rm /tigress/alexeys/normalization/*
19+
rm /tigress/$USER/model_checkpoints/*
20+
rm /tigress/$USER/results/*
21+
rm /tigress/$USER/csv_logs/*
22+
rm /tigress/$USER/Graph/*
23+
rm /tigress/$USER/normalization/*
2224

2325
export OMPI_MCA_btl="tcp,self,sm"
2426

plasma/conf_parser.py

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -94,18 +94,20 @@ def parameters(input_file):
9494
elif params['paths']['data'] == 'd3d_data':
9595
params['paths']['shot_files'] = [d3d_full]
9696
params['paths']['shot_files_test'] = []
97-
params['paths']['use_signals_dict'] = {'q95':q95,'li':li,'ip':ip,'lm':lm,'betan':betan,'energy':energy,'dens':dens,'pradcore':pradcore,
98-
'pradedge':pradedge,'pin':pin,'torquein':torquein,'ipdirect':ipdirect,'iptarget':iptarget,'iperr':iperr,
99-
'etemp_profile':etemp_profile ,'edens_profile':edens_profile}
97+
params['paths']['use_signals_dict'] = {'q95':q95,'li':li,'ip':ip,'lm':lm,'betan':betan,'energy':energy,'dens':dens,'pradcore':pradcore,'pradedge':pradedge,'pin':pin,'torquein':torquein,'ipdirect':ipdirect,'iptarget':iptarget,'iperr':iperr,
98+
'etemp_profile':etemp_profile ,'edens_profile':edens_profile}
10099
elif params['paths']['data'] == 'd3d_data_1D':
101100
params['paths']['shot_files'] = [d3d_full]
102101
params['paths']['shot_files_test'] = []
103102
params['paths']['use_signals_dict'] = {'ipdirect':ipdirect,'etemp_profile':etemp_profile ,'edens_profile':edens_profile}
103+
elif params['paths']['data'] == 'd3d_data_all_profiles':
104+
params['paths']['shot_files'] = [d3d_full]
105+
params['paths']['shot_files_test'] = []
106+
params['paths']['use_signals_dict'] = {'ipdirect':ipdirect,'etemp_profile':etemp_profile ,'edens_profile':edens_profile,'itemp_profile':itemp_profile,'zdens_profile':zdens_profile,'trot_profile':trot_profile,'pthm_profile':pthm_profile,'neut_profile':neut_profile,'q_profile':q_profile,'bootstrap_current_profile':bootstrap_current_profile,'q_psi_profile':q_psi_profile}
104107
elif params['paths']['data'] == 'd3d_data_0D':
105108
params['paths']['shot_files'] = [d3d_full]
106109
params['paths']['shot_files_test'] = []
107-
params['paths']['use_signals_dict'] = {'q95':q95,'li':li,'ip':ip,'lm':lm,'betan':betan,'energy':energy,'dens':dens,'pradcore':pradcore,
108-
'pradedge':pradedge,'pin':pin,'torquein':torquein,'ipdirect':ipdirect,'iptarget':iptarget,'iperr':iperr}
110+
params['paths']['use_signals_dict'] = {'q95':q95,'li':li,'ip':ip,'lm':lm,'betan':betan,'energy':energy,'dens':dens,'pradcore':pradcore,'pradedge':pradedge,'pin':pin,'torquein':torquein,'ipdirect':ipdirect,'iptarget':iptarget,'iperr':iperr}
109111
elif params['paths']['data'] == 'd3d_data_all':
110112
params['paths']['shot_files'] = [d3d_full]
111113
params['paths']['shot_files_test'] = []
@@ -130,14 +132,13 @@ def parameters(input_file):
130132
print("Signal {} is not fully defined for {} machine. Skipping...".format(sig,params['paths']['data'].split("_")[0]))
131133
params['paths']['specific_signals'] = list(filter(lambda x: x in params['paths']['use_signals_dict'].keys(), params['paths']['specific_signals']))
132134
selected_signals = {k: params['paths']['use_signals_dict'][k] for k in params['paths']['specific_signals']}
133-
params['paths']['use_signals'] = list(selected_signals.values())
135+
params['paths']['use_signals'] = sort_by_channels(list(selected_signals.values()))
134136

135-
selected_signals = {k: fully_defined_signals[k] for k in params['paths']['specific_signals']}
136-
params['paths']['all_signals'] = list(selected_signals.values())
137137
else:
138138
#default case
139-
params['paths']['use_signals'] = list(params['paths']['use_signals_dict'].values())
140-
params['paths']['all_signals'] = list(fully_defined_signals.values())
139+
params['paths']['use_signals'] = sort_by_channels(list(params['paths']['use_signals_dict'].values()))
140+
141+
params['paths']['all_signals'] = sort_by_channels(list(params['paths']['all_signals_dict'].values()))
141142

142143
print("Selected signals (determines which signals training is run on):\n{}".format(params['paths']['use_signals']))
143144

@@ -153,3 +154,7 @@ def parameters(input_file):
153154
def get_unique_signal_hash(signals):
154155
return hash(tuple(sorted(signals)))
155156

157+
#make sure 1D signals come last! This is necessary for model builder.
158+
def sort_by_channels(list_of_signals):
159+
return sorted(list_of_signals,key = lambda x: x.num_channels)
160+

plasma/models/builder.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -147,9 +147,9 @@ def slicer_output_shape(input_shape,indices):
147147
pre_rnn = pre_rnn_input
148148

149149
if model_conf['rnn_layers'] == 0:
150-
pre_rnn = Dense(dense_size,activation='tanh',kernel_regularizer=l2(dense_regularization),bias_regularizer=l2(dense_regularization),activity_regularizer=l2(dense_regularization)) (pre_rnn)
151-
pre_rnn = Dense(dense_size/2,activation='tanh',kernel_regularizer=l2(dense_regularization),bias_regularizer=l2(dense_regularization),activity_regularizer=l2(dense_regularization)) (pre_rnn)
152-
pre_rnn = Dense(dense_size/4,activation='tanh',kernel_regularizer=l2(dense_regularization),bias_regularizer=l2(dense_regularization),activity_regularizer=l2(dense_regularization)) (pre_rnn)
150+
pre_rnn = Dense(dense_size,activation='relu',kernel_regularizer=l2(dense_regularization),bias_regularizer=l2(dense_regularization),activity_regularizer=l2(dense_regularization)) (pre_rnn)
151+
pre_rnn = Dense(dense_size/2,activation='relu',kernel_regularizer=l2(dense_regularization),bias_regularizer=l2(dense_regularization),activity_regularizer=l2(dense_regularization)) (pre_rnn)
152+
pre_rnn = Dense(dense_size/4,activation='relu',kernel_regularizer=l2(dense_regularization),bias_regularizer=l2(dense_regularization),activity_regularizer=l2(dense_regularization)) (pre_rnn)
153153

154154
pre_rnn_model = Model(inputs = pre_rnn_input,outputs=pre_rnn)
155155
x_input = Input(batch_shape = batch_input_shape)

plasma/primitives/data.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ def __init__(self,description,paths,machines,tex_label=None,causal_shifts=None,i
2929
self.data_avail_tolerance = data_avail_tolerance
3030
self.is_strictly_positive=is_strictly_positive
3131

32-
def is_strictly_positive(self):
32+
def is_strictly_positive_fn(self):
3333
return self.is_strictly_positive
3434

3535
def is_ip(self):
@@ -143,8 +143,8 @@ def __repr__(self):
143143
return self.description
144144

145145
class ProfileSignal(Signal):
146-
def __init__(self,description,paths,machines,tex_label=None,causal_shifts=None,mapping_range=(0,1),num_channels=32,data_avail_tolerance=0):
147-
super(ProfileSignal, self).__init__(description,paths,machines,tex_label,causal_shifts,is_ip=False,data_avail_tolerance=data_avail_tolerance)
146+
def __init__(self,description,paths,machines,tex_label=None,causal_shifts=None,mapping_range=(0,1),num_channels=32,data_avail_tolerance=0,is_strictly_positive=False):
147+
super(ProfileSignal, self).__init__(description,paths,machines,tex_label,causal_shifts,is_ip=False,data_avail_tolerance=data_avail_tolerance,is_strictly_positive=is_strictly_positive)
148148
self.mapping_range = mapping_range
149149
self.num_channels = num_channels
150150

0 commit comments

Comments
 (0)