def CheckArgs(args): if not os.path.exists(args.config_dir): os.makedirs(args.config_dir) ## Check arguments. if args.feat_dir is not None: args.feat_dim = common_lib.get_feat_dim(args.feat_dir) if args.ali_dir is not None: args.num_targets = common_lib.get_number_of_leaves_from_tree(args.ali_dir) elif args.tree_dir is not None: args.num_targets = common_lib.get_number_of_leaves_from_tree(args.tree_dir) if args.ivector_dir is not None: args.ivector_dim = common_lib.get_ivector_dim(args.ivector_dir) if not args.feat_dim > 0: raise Exception("feat-dim has to be postive") if not args.num_targets > 0: print(args.num_targets) raise Exception("num_targets has to be positive") if not args.ivector_dim >= 0: raise Exception("ivector-dim has to be non-negative") if ( not args.max_change_per_component >= 0 or not args.max_change_per_component_final >= 0 ): raise Exception( "max-change-per-component and max_change-per-component-final should be non-negative" ) if args.num_lstm_layers < 1: sys.exit("--num-lstm-layers has to be a positive integer") if args.clipping_threshold < 0 or args.zeroing_threshold < 0: sys.exit("--clipping-threshold and --zeroing-threshold have to be non-negative") if not args.zeroing_interval > 0: raise Exception("--zeroing-interval has to be positive") if args.lstm_delay is None: args.lstm_delay = [[-1]] * args.num_lstm_layers else: try: args.lstm_delay = ParseLstmDelayString(args.lstm_delay.strip()) except ValueError: sys.exit( "--lstm-delay has incorrect format value. Provided value is '{0}'".format( args.lstm_delay ) ) if len(args.lstm_delay) != args.num_lstm_layers: sys.exit( "--lstm-delay: Number of delays provided has to match --num-lstm-layers" ) return args
def CheckArgs(args): if not os.path.exists(args.config_dir): os.makedirs(args.config_dir) ## Check arguments. if args.feat_dir is not None: args.feat_dim = common_lib.get_feat_dim(args.feat_dir) if args.ali_dir is not None: args.num_targets = common_lib.get_number_of_leaves_from_tree(args.ali_dir) elif args.tree_dir is not None: args.num_targets = common_lib.get_number_of_leaves_from_tree(args.tree_dir) if args.ivector_dir is not None: args.ivector_dim = common_lib.get_ivector_dim(args.ivector_dir) if not args.feat_dim > 0: raise Exception("feat-dim has to be postive") if not args.num_targets > 0: print(args.num_targets) raise Exception("num_targets has to be positive") if not args.ivector_dim >= 0: raise Exception("ivector-dim has to be non-negative") if not args.max_change_per_component >= 0 or not args.max_change_per_component_final >= 0: raise Exception("max-change-per-component and max_change-per-component-final should be non-negative") if (args.num_lstm_layers < 1): sys.exit("--num-lstm-layers has to be a positive integer") if (args.clipping_threshold < 0 or args.zeroing_threshold < 0): sys.exit("--clipping-threshold and --zeroing-threshold have to be non-negative") if not args.zeroing_interval > 0: raise Exception("--zeroing-interval has to be positive") if args.lstm_delay is None: args.lstm_delay = [[-1]] * args.num_lstm_layers else: try: args.lstm_delay = ParseLstmDelayString(args.lstm_delay.strip()) except ValueError: sys.exit("--lstm-delay has incorrect format value. Provided value is '{0}'".format(args.lstm_delay)) if len(args.lstm_delay) != args.num_lstm_layers: sys.exit("--lstm-delay: Number of delays provided has to match --num-lstm-layers") return args
def CheckArgs(args): if not os.path.exists(args.config_dir): os.makedirs(args.config_dir) ## Check arguments. if args.feat_dir is not None: args.feat_dim = common_lib.get_feat_dim(args.feat_dir) if args.ali_dir is not None: args.num_targets = common_lib.get_number_of_leaves_from_tree( args.ali_dir) elif args.tree_dir is not None: args.num_targets = common_lib.get_number_of_leaves_from_tree( args.tree_dir) if args.ivector_dir is not None: args.ivector_dim = common_lib.get_ivector_dim(args.ivector_dir) if not args.feat_dim > 0: raise Exception("feat-dim has to be postive") if not args.num_targets > 0: print(args.num_targets) raise Exception("num_targets has to be positive") if not args.ivector_dim >= 0: raise Exception("ivector-dim has to be non-negative") if (args.subset_dim < 0): raise Exception("--subset-dim has to be non-negative") if not args.relu_dim is None: if not args.pnorm_input_dim is None or not args.pnorm_output_dim is None or not args.relu_dim_init is None: raise Exception( "--relu-dim argument not compatible with " "--pnorm-input-dim or --pnorm-output-dim or --relu-dim-init options" ) args.nonlin_input_dim = args.relu_dim args.nonlin_output_dim = args.relu_dim args.nonlin_output_dim_final = None args.nonlin_output_dim_init = None args.nonlin_type = 'relu' elif not args.relu_dim_final is None: if not args.pnorm_input_dim is None or not args.pnorm_output_dim is None: raise Exception("--relu-dim-final argument not compatible with " "--pnorm-input-dim or --pnorm-output-dim options") if args.relu_dim_init is None: raise Exception( "--relu-dim-init argument should also be provided with --relu-dim-final" ) if args.relu_dim_init > args.relu_dim_final: raise Exception( "--relu-dim-init has to be no larger than --relu-dim-final") args.nonlin_input_dim = None args.nonlin_output_dim = None args.nonlin_output_dim_final = args.relu_dim_final args.nonlin_output_dim_init = args.relu_dim_init args.nonlin_type = 'relu' else: if not args.relu_dim_init is None: raise Exception("--relu-dim-final argument not compatible with " "--pnorm-input-dim or --pnorm-output-dim options") if not args.pnorm_input_dim > 0 or not args.pnorm_output_dim > 0: raise Exception( "--relu-dim not set, so expected --pnorm-input-dim and " "--pnorm-output-dim to be provided.") args.nonlin_input_dim = args.pnorm_input_dim args.nonlin_output_dim = args.pnorm_output_dim if (args.nonlin_input_dim < args.nonlin_output_dim) or ( args.nonlin_input_dim % args.nonlin_output_dim != 0): raise Exception( "Invalid --pnorm-input-dim {0} and --pnorm-output-dim {1}". format(args.nonlin_input_dim, args.nonlin_output_dim)) args.nonlin_output_dim_final = None args.nonlin_output_dim_init = None args.nonlin_type = 'pnorm' if args.add_final_sigmoid and args.include_log_softmax: raise Exception( "--include-log-softmax and --add-final-sigmoid cannot both be true." ) if args.xent_separate_forward_affine and args.add_final_sigmoid: raise Exception( "It does not make sense to have --add-final-sigmoid=true when xent-separate-forward-affine is true" ) if args.add_lda and args.cnn_layer is not None: args.add_lda = False warnings.warn("--add-lda is set to false as CNN layers are used.") if not args.max_change_per_component >= 0 or not args.max_change_per_component_final >= 0: raise Exception( "max-change-per-component and max_change-per-component-final should be non-negative" ) return args
def CheckArgs(args): if not os.path.exists(args.config_dir): os.makedirs(args.config_dir) ## Check arguments. if args.feat_dir is not None: args.feat_dim = common_lib.get_feat_dim(args.feat_dir) if args.ali_dir is not None: args.num_targets = common_lib.get_number_of_leaves_from_tree(args.ali_dir) elif args.tree_dir is not None: args.num_targets = common_lib.get_number_of_leaves_from_tree(args.tree_dir) if args.ivector_dir is not None: args.ivector_dim = common_lib.get_ivector_dim(args.ivector_dir) if not args.feat_dim > 0: raise Exception("feat-dim has to be postive") if not args.num_targets > 0: print(args.num_targets) raise Exception("num_targets has to be positive") if not args.ivector_dim >= 0: raise Exception("ivector-dim has to be non-negative") if (args.subset_dim < 0): raise Exception("--subset-dim has to be non-negative") if not args.relu_dim is None: if not args.pnorm_input_dim is None or not args.pnorm_output_dim is None or not args.relu_dim_init is None: raise Exception("--relu-dim argument not compatible with " "--pnorm-input-dim or --pnorm-output-dim or --relu-dim-init options"); args.nonlin_input_dim = args.relu_dim args.nonlin_output_dim = args.relu_dim args.nonlin_output_dim_final = None args.nonlin_output_dim_init = None args.nonlin_type = 'relu' elif not args.relu_dim_final is None: if not args.pnorm_input_dim is None or not args.pnorm_output_dim is None: raise Exception("--relu-dim-final argument not compatible with " "--pnorm-input-dim or --pnorm-output-dim options") if args.relu_dim_init is None: raise Exception("--relu-dim-init argument should also be provided with --relu-dim-final") if args.relu_dim_init > args.relu_dim_final: raise Exception("--relu-dim-init has to be no larger than --relu-dim-final") args.nonlin_input_dim = None args.nonlin_output_dim = None args.nonlin_output_dim_final = args.relu_dim_final args.nonlin_output_dim_init = args.relu_dim_init args.nonlin_type = 'relu' else: if not args.relu_dim_init is None: raise Exception("--relu-dim-final argument not compatible with " "--pnorm-input-dim or --pnorm-output-dim options") if not args.pnorm_input_dim > 0 or not args.pnorm_output_dim > 0: raise Exception("--relu-dim not set, so expected --pnorm-input-dim and " "--pnorm-output-dim to be provided."); args.nonlin_input_dim = args.pnorm_input_dim args.nonlin_output_dim = args.pnorm_output_dim if (args.nonlin_input_dim < args.nonlin_output_dim) or (args.nonlin_input_dim % args.nonlin_output_dim != 0): raise Exception("Invalid --pnorm-input-dim {0} and --pnorm-output-dim {1}".format(args.nonlin_input_dim, args.nonlin_output_dim)) args.nonlin_output_dim_final = None args.nonlin_output_dim_init = None args.nonlin_type = 'pnorm' if args.add_final_sigmoid and args.include_log_softmax: raise Exception("--include-log-softmax and --add-final-sigmoid cannot both be true.") if args.xent_separate_forward_affine and args.add_final_sigmoid: raise Exception("It does not make sense to have --add-final-sigmoid=true when xent-separate-forward-affine is true") if args.add_lda and args.cnn_layer is not None: args.add_lda = False warnings.warn("--add-lda is set to false as CNN layers are used.") if not args.max_change_per_component >= 0 or not args.max_change_per_component_final >= 0: raise Exception("max-change-per-component and max_change-per-component-final should be non-negative") return args