def __init__(self, batch_size, layerable_cnn_list, lstm_model, seq_len=10, learning_rate=1e-05, computable_loss=None, opt_params=None, verificatable_result=None, pre_learned_path_list=None, verbose_mode=False): logger = getLogger("pydbm") handler = StreamHandler() if verbose_mode is True: handler.setLevel(DEBUG) logger.setLevel(DEBUG) else: handler.setLevel(ERROR) logger.setLevel(ERROR) logger.addHandler(handler) self.__logger = getLogger("pyqlearning") handler = StreamHandler() if verbose_mode is True: self.__logger.setLevel(DEBUG) else: self.__logger.setLevel(ERROR) self.__logger.addHandler(handler) if isinstance(lstm_model, LSTMModel) is False: raise TypeError() if computable_loss is None: computable_loss = MeanSquaredError() if verificatable_result is None: verificatable_result = VerificateFunctionApproximation() if opt_params is None: opt_params = Adam() opt_params.weight_limit = 0.5 opt_params.dropout_rate = 0.0 cnn = ConvolutionalNeuralNetwork( # The `list` of `ConvolutionLayer`. layerable_cnn_list=layerable_cnn_list, # The number of epochs in mini-batch training. epochs=200, # The batch size. batch_size=batch_size, # Learning rate. learning_rate=learning_rate, # Loss function. computable_loss=computable_loss, # Optimizer. opt_params=opt_params, # Verification. verificatable_result=verificatable_result, # Others. learning_attenuate_rate=0.1, attenuate_epoch=50) self.__cnn = cnn self.__lstm_model = lstm_model self.__seq_len = seq_len self.__batch_size = batch_size self.__computable_loss = computable_loss self.__learning_rate = learning_rate self.__verbose_mode = verbose_mode self.__q_shape = None self.__q_logs_list = []
def __init__( self, batch_size, layerable_cnn_list, learning_rate=1e-05, computable_loss=None, opt_params=None, verificatable_result=None, pre_learned_path_list=None, fc_w_arr=None, fc_activation_function=None, cnn=None, verbose_mode=False ): ''' Init. Args: batch_size: Batch size in mini-batch. layerable_cnn_list: `list` of `LayerableCNN`. learning_rate: Learning rate. computable_loss: is-a `ComputableLoss`. opt_params: is-a `OptParams`. verificatable_result: is-a `VerificateFunctionApproximation`. pre_learned_path_list: `list` of file path that stored pre-learned parameters. This parameters will be refered only when `cnn` is `None`. fc_w_arr: `np.ndarray` of weight matrix in output layer. fc_activation_function: is-a `ActivatingFunctionInterface`. cnn: is-a `ConvolutionalNeuralNetwork` as a model in this class. If not `None`, `self.__cnn` will be overrided by this `cnn`. If `None`, this class initialize `ConvolutionalNeuralNetwork` by default hyper parameters. verbose_mode: Verbose mode or not. ''' logger = getLogger("pydbm") handler = StreamHandler() if verbose_mode is True: handler.setLevel(DEBUG) logger.setLevel(DEBUG) else: handler.setLevel(ERROR) logger.setLevel(ERROR) logger.addHandler(handler) self.__logger = getLogger("pyqlearning") handler = StreamHandler() if verbose_mode is True: self.__logger.setLevel(DEBUG) else: self.__logger.setLevel(ERROR) self.__logger.addHandler(handler) if computable_loss is None: computable_loss = MeanSquaredError() if verificatable_result is None: verificatable_result = VerificateFunctionApproximation() if opt_params is None: opt_params = Adam() opt_params.weight_limit = 0.5 opt_params.dropout_rate = 0.0 if cnn is None: cnn = ConvolutionalNeuralNetwork( # The `list` of `ConvolutionLayer`. layerable_cnn_list=layerable_cnn_list, # The number of epochs in mini-batch training. epochs=200, # The batch size. batch_size=batch_size, # Learning rate. learning_rate=learning_rate, # Loss function. computable_loss=computable_loss, # Optimizer. opt_params=opt_params, # Verification. verificatable_result=verificatable_result, # Pre-learned parameters. pre_learned_path_list=pre_learned_path_list, # Others. learning_attenuate_rate=0.1, attenuate_epoch=50 ) self.__cnn = cnn self.__batch_size = batch_size self.__computable_loss = computable_loss self.__learning_rate = learning_rate self.__verbose_mode = verbose_mode self.__fc_w_arr = fc_w_arr self.__fc_activation_function = fc_activation_function self.__q_shape = None self.__loss_list = []
def __init__(self, deconvolution_model, batch_size, layerable_cnn_list, learning_rate=1e-05, learning_attenuate_rate=0.1, attenuate_epoch=50, computable_loss=None, opt_params=None, verificatable_result=None, cnn=None, condition_noise_sampler=None): ''' Init. Args: deconvolution_model: is-a `DeconvolutionModel`. batch_size: Batch size in mini-batch. layerable_cnn_list: `list` of `LayerableCNN`. cnn_output_graph: is-a `CNNOutputGraph`. learning_rate: Learning rate. learning_attenuate_rate: Attenuate the `learning_rate` by a factor of this value every `attenuate_epoch`. attenuate_epoch: Attenuate the `learning_rate` by a factor of `learning_attenuate_rate` every `attenuate_epoch`. Additionally, in relation to regularization, this class constrains weight matrixes every `attenuate_epoch`. computable_loss: is-a `ComputableLoss`. This parameters will be refered only when `cnn` is `None`. opt_params: is-a `OptParams`. This parameters will be refered only when `cnn` is `None`. verificatable_result: is-a `VerificateFunctionApproximation`. This parameters will be refered only when `cnn` is `None`. cnn: is-a `ConvolutionalNeuralNetwork` as a model in this class. If not `None`, `self.__cnn` will be overrided by this `cnn`. If `None`, this class initialize `ConvolutionalNeuralNetwork` by default hyper parameters. condition_noise_sampler: is-a `NoiseSampler` to add noise to outputs from `Conditioner`. ''' if isinstance(deconvolution_model, DeconvolutionModel) is False: raise TypeError() self.__deconvolution_model = deconvolution_model if cnn is None: for layerable_cnn in layerable_cnn_list: if isinstance(layerable_cnn, LayerableCNN) is False: raise TypeError() self.__layerable_cnn_list = layerable_cnn_list self.__learning_rate = learning_rate self.__opt_params = opt_params if cnn is None: if computable_loss is None: computable_loss = MeanSquaredError() if isinstance(computable_loss, ComputableLoss) is False: raise TypeError() if verificatable_result is None: verificatable_result = VerificateFunctionApproximation() if isinstance(verificatable_result, VerificatableResult) is False: raise TypeError() if opt_params is None: opt_params = Adam() opt_params.weight_limit = 1e+10 opt_params.dropout_rate = 0.0 if isinstance(opt_params, OptParams) is False: raise TypeError() cnn = ConvolutionalNeuralNetwork( layerable_cnn_list=layerable_cnn_list, computable_loss=computable_loss, opt_params=opt_params, verificatable_result=verificatable_result, epochs=100, batch_size=batch_size, learning_rate=learning_rate, learning_attenuate_rate=learning_attenuate_rate, test_size_rate=0.3, tol=1e-15, tld=100.0, save_flag=False, pre_learned_path_list=None) self.__cnn = cnn self.__condition_noise_sampler = condition_noise_sampler self.__batch_size = batch_size self.__computable_loss = computable_loss self.__learning_rate = learning_rate self.__attenuate_epoch = attenuate_epoch self.__learning_attenuate_rate = learning_attenuate_rate self.__q_shape = None self.__loss_list = [] self.__epoch_counter = 0 logger = getLogger("pygan") self.__logger = logger
def __init__(self, batch_size, layerable_cnn_list, cnn_output_graph, learning_rate=1e-05, computable_loss=None, opt_params=None, verificatable_result=None, cnn=None, feature_matching_layer=0): ''' Init. Args: batch_size: Batch size in mini-batch. layerable_cnn_list: `list` of `LayerableCNN`. cnn_output_graph: is-a `CNNOutputGraph`. learning_rate: Learning rate. computable_loss: is-a `ComputableLoss`. This parameters will be refered only when `cnn` is `None`. opt_params: is-a `OptParams`. This parameters will be refered only when `cnn` is `None`. verificatable_result: is-a `VerificateFunctionApproximation`. This parameters will be refered only when `cnn` is `None`. cnn: is-a `ConvolutionalNeuralNetwork` as a model in this class. If not `None`, `self.__cnn` will be overrided by this `cnn`. If `None`, this class initialize `ConvolutionalNeuralNetwork` by default hyper parameters. feature_matching_layer: Key of layer number for feature matching forward/backward. ''' for layerable_cnn in layerable_cnn_list: if isinstance(layerable_cnn, LayerableCNN) is False: raise TypeError() self.__layerable_cnn_list = layerable_cnn_list self.__learning_rate = learning_rate self.__opt_params = opt_params if cnn is None: if computable_loss is None: computable_loss = MeanSquaredError() if isinstance(computable_loss, ComputableLoss) is False: raise TypeError() if verificatable_result is None: verificatable_result = VerificateFunctionApproximation() if isinstance(verificatable_result, VerificatableResult) is False: raise TypeError() if opt_params is None: opt_params = Adam() opt_params.weight_limit = 1e+10 opt_params.dropout_rate = 0.0 if isinstance(opt_params, OptParams) is False: raise TypeError() cnn = ConvolutionalNeuralNetwork( layerable_cnn_list=layerable_cnn_list, computable_loss=computable_loss, opt_params=opt_params, verificatable_result=verificatable_result, epochs=100, batch_size=batch_size, learning_rate=learning_rate, learning_attenuate_rate=0.1, test_size_rate=0.3, tol=1e-15, tld=100.0, save_flag=False, pre_learned_path_list=None) cnn.setup_output_layer(cnn_output_graph) self.__cnn = cnn self.__batch_size = batch_size self.__computable_loss = computable_loss self.__learning_rate = learning_rate self.__q_shape = None self.__loss_list = [] self.__feature_matching_layer = feature_matching_layer self.__epoch_counter = 0 logger = getLogger("pygan") self.__logger = logger
def __init__(self, batch_size, layerable_cnn_list, cnn_output_graph, learning_rate=1e-05, learning_attenuate_rate=0.1, attenuate_epoch=50, computable_loss=None, opt_params=None, verificatable_result=None, pre_learned_path_list=None, pre_learned_output_path=None, cnn=None, verbose_mode=False): ''' Init. Args: batch_size: Batch size in mini-batch. layerable_cnn_list: `list` of `LayerableCNN`. cnn_output_graph: Computation graph which is-a `CNNOutputGraph` to compute parameters in output layer. learning_rate: Learning rate. learning_attenuate_rate: Attenuate the `learning_rate` by a factor of this value every `attenuate_epoch`. attenuate_epoch: Attenuate the `learning_rate` by a factor of `learning_attenuate_rate` every `attenuate_epoch`. computable_loss: is-a `ComputableLoss`. opt_params: is-a `OptParams`. verificatable_result: is-a `VerificateFunctionApproximation`. pre_learned_path_list: `list` of file path that stored pre-learned parameters. This parameters will be refered only when `cnn` is `None`. pre_learned_output_path: File path that stores pre-learned parameters. cnn: is-a `ConvolutionalNeuralNetwork` as a model in this class. If not `None`, `self.__cnn` will be overrided by this `cnn`. If `None`, this class initialize `ConvolutionalNeuralNetwork` by default hyper parameters. verbose_mode: Verbose mode or not. ''' logger = getLogger("pydbm") handler = StreamHandler() if verbose_mode is True: handler.setLevel(DEBUG) logger.setLevel(DEBUG) else: handler.setLevel(ERROR) logger.setLevel(ERROR) logger.addHandler(handler) self.__logger = getLogger("pyqlearning") handler = StreamHandler() if verbose_mode is True: self.__logger.setLevel(DEBUG) else: self.__logger.setLevel(ERROR) self.__logger.addHandler(handler) if computable_loss is None: computable_loss = MeanSquaredError() if verificatable_result is None: verificatable_result = VerificateFunctionApproximation() if opt_params is None: opt_params = Adam() opt_params.weight_limit = 1e+10 opt_params.dropout_rate = 0.0 if cnn is None: cnn = ConvolutionalNeuralNetwork( # The `list` of `ConvolutionLayer`. layerable_cnn_list=layerable_cnn_list, # The number of epochs in mini-batch training. epochs=200, # The batch size. batch_size=batch_size, # Learning rate. learning_rate=learning_rate, # Loss function. computable_loss=computable_loss, # Optimizer. opt_params=opt_params, # Verification. verificatable_result=verificatable_result, # Pre-learned parameters. pre_learned_path_list=pre_learned_path_list, # Others. learning_attenuate_rate=learning_attenuate_rate, attenuate_epoch=attenuate_epoch) cnn.setup_output_layer(cnn_output_graph, pre_learned_output_path) self.__cnn = cnn self.__batch_size = batch_size self.__computable_loss = computable_loss self.__learning_rate = learning_rate self.__learning_attenuate_rate = learning_attenuate_rate self.__attenuate_epoch = attenuate_epoch self.__verbose_mode = verbose_mode self.__loss_list = [] self.__epoch_counter = 0
def __init__(self, batch_size, layerable_cnn_list, cnn_output_graph, learning_rate=1e-05, computable_loss=None, opt_params=None, verificatable_result=None, cnn=None, verbose_mode=False): ''' Init. Args: batch_size: Batch size in mini-batch. layerable_cnn_list: `list` of `LayerableCNN`. cnn_output_graph: is-a `CNNOutputGraph`. learning_rate: Learning rate. computable_loss: is-a `ComputableLoss`. This parameters will be refered only when `cnn` is `None`. opt_params: is-a `OptParams`. This parameters will be refered only when `cnn` is `None`. verificatable_result: is-a `VerificateFunctionApproximation`. This parameters will be refered only when `cnn` is `None`. cnn: is-a `ConvolutionalNeuralNetwork` as a model in this class. If not `None`, `self.__cnn` will be overrided by this `cnn`. If `None`, this class initialize `ConvolutionalNeuralNetwork` by default hyper parameters. verbose_mode: Verbose mode or not. ''' for layerable_cnn in layerable_cnn_list: if isinstance(layerable_cnn, LayerableCNN) is False: raise TypeError() logger = getLogger("pydbm") handler = StreamHandler() if verbose_mode is True: handler.setLevel(DEBUG) logger.setLevel(DEBUG) else: handler.setLevel(ERROR) logger.setLevel(ERROR) logger.addHandler(handler) self.__layerable_cnn_list = layerable_cnn_list self.__learning_rate = learning_rate self.__opt_params = opt_params self.__logger = logger if cnn is None: if computable_loss is None: computable_loss = MeanSquaredError() if isinstance(computable_loss, ComputableLoss) is False: raise TypeError() if verificatable_result is None: verificatable_result = VerificateFunctionApproximation() if isinstance(verificatable_result, VerificatableResult) is False: raise TypeError() if opt_params is None: opt_params = Adam() opt_params.weight_limit = 0.5 opt_params.dropout_rate = 0.0 if isinstance(opt_params, OptParams) is False: raise TypeError() cnn = ConvolutionalNeuralNetwork( layerable_cnn_list=layerable_cnn_list, computable_loss=computable_loss, opt_params=opt_params, verificatable_result=verificatable_result, epochs=100, batch_size=batch_size, learning_rate=learning_rate, learning_attenuate_rate=0.1, test_size_rate=0.3, tol=1e-15, tld=100.0, save_flag=False, pre_learned_path_list=None) cnn.setup_output_layer(cnn_output_graph) self.__cnn = cnn self.__batch_size = batch_size self.__computable_loss = computable_loss self.__learning_rate = learning_rate self.__verbose_mode = verbose_mode self.__q_shape = None self.__loss_list = []