def compile(self, loss, optimizer='sgd', metrics=['accuracy']): self.func['loss'] = _CallClass('common.layers', loss) self.func['loss'] = self.func['loss']() self.func['optimizer'] = _CallClass('common.optimizer', optimizer) self.func['optimizer'] = self.func['optimizer']() #---------------------------------------- # 精度検証用の関数を設定 #---------------------------------------- param = ['train_', 'val_'] for metric in metrics: if str(metric).lower() in ('r2'): metric = 'r2_score' if str(metric).lower() in ('rsme'): metric = 'rsme_score' self.metrics_func[metric] = _CallFunction('common.functions', metric) #-------------------------- # 結果保存用の配列を設定 #-------------------------- for i in param: name = str(i) + str(metric) self.logs[name] = [] """
def compile(self, loss='mean_squared_error', optimizer='sgd', metrics=['accuracy']): self.func['loss'] = _CallClass('common.layers', loss) self.func['loss'] = self.func['loss']() self.func['optimizer'] = _CallClass('common.optimizer', optimizer) #self.func['metrics'] = metrics """
def compile(self, loss='mean_squared_error', optimizer='sgd', metrics=['accuracy']): self.func['loss'] = _CallClass('common.layers', loss) self.func['loss'] = self.func['loss']() self.func['optimizer'] = _CallClass('common.optimizer', optimizer) #self.func['metrics'] = metrics for i in range(len(self.units)): if (i == len(self.units) - 1): Tuple = (self.units[i + 1], 1) else: Tuple = (self.units[i + 1], self.units[i + 2]) self.sequential[i + 1].compile(Tuple[1])
def compile(self, loss, optimizer='sgd', metrics=['accuracy']): self.func['loss'] = _CallClass('common.layers', loss) self.func['loss'] = self.func['loss']() self.func['optimizer'] = _CallClass('common.optimizer', optimizer) self.func['optimizer'] = self.func['optimizer']() func = [] for metric in metrics: if str(metric).lower() in ('r2'): metric = 'r2_score' if str(metric).lower() in ('rsme'): metric = 'rsme_score' func.append(_CallFunction('common.functions', metric)) for key in self.metrics_func.keys(): self.metrics_func[key] = func
def compile(self, loss, optimizer='sgd', lr=0.01, metrics=['r2', 'rmse']): self.func['loss'] = _CallClass('common.layers', loss) self.func['loss'] = self.func['loss']() #---------------------------------------- #レイヤ内の設定 #---------------------------------------- y = np.zeros((1, self.units[1])) for layer in self.sequential.values(): y = layer.compile(y, optimizer, lr) #---------------------------------------- # 精度検証用の関数を設定 #---------------------------------------- param = ['train_', 'val_'] for metric in metrics: if str(metric).lower() in ('r2'): metric = 'r2_score' if str(metric).lower() in ('rmse'): metric = 'rmse_score' #self.metrics_func[metric] = _CallFunction('common.functions', metric) self.func[metric] = _CallFunction('common.functions', metric) #-------------------------- # 結果保存用の配列を設定 #-------------------------- for i in param: name = str(i) + str(metric) self.logs[name] = [] #----------------------------- # テスト結果保存用の配列を設定 #----------------------------- self.score[metric] = []
def _optimizer(self, optimizer='sgd', loss=1, lr=0.01): self.diffParams['W'] = self.function['Affine'].dW self.diffParams['b'] = self.function['Affine'].dB # クラスのインスタンスを作成 class_def = _CallClass('optimizer', optimizer) obj = class_def() obj.update(self.params, self.diffParams)
def load_model(self, file_name='model.pkl'): with open(file_name, 'rb') as f: model = pickle.load(f) for key, val in model.items(): val[0] = _CallClass('common.layers', key) initializer = val[3] val[0] = val[0](val[1], val[2], initializer['W'], initializer['b']) self.sequential[key] = val[0]
def load_model(self, file_name="model.pkl"): with open(file_name, "rb") as f: model = pickle.load(f) for key, val in model.items(): val[0] = _CallClass("common.layers", key) initializer = val[3] val[0] = val[0](val[1], val[2], initializer["W"], initializer["b"]) self.sequential[key] = val[0]
def compile(self, loss, optimizer='sgd', lr=0.01, metrics=['r2', 'rmse']): self.func['loss'] = _CallClass('common.layers', loss) self.func['loss'] = self.func['loss']() self.func['optimizer'] = _CallClass('common.optimizer', optimizer) self.func['optimizer'] = self.func['optimizer']() #---------------------------------------- #レイヤ内の設定 #---------------------------------------- idx = 1 y = np.zeros((1, self.inputLayer[1])) for key, layer in self.sequential.items(): #y = layer.compile(y, optimizer, lr) #key, y, params = layer.compile(y) y = layer[0].compile(y) if 'Dense' in key: #self.Dense[key + str(idx)] = layer self.params['W' + str(idx)] = layer[0].params['W'] self.params['b' + str(idx)] = layer[0].params['b'] idx += 1 #---------------------------------------- # 精度検証用の関数を設定 #---------------------------------------- param = ['train_', 'val_'] for metric in metrics: if str(metric).lower() in ('r2'): metric = 'r2_score' if str(metric).lower() in ('rmse'): metric = 'rmse_score' #self.metrics_func[metric] = _CallFunction('common.functions', metric) self.func[metric] = _CallFunction('common.functions', metric) #-------------------------- # 結果保存用の配列を設定 #-------------------------- for i in param: name = str(i) + str(metric) self.logs[name] = [] #----------------------------- # テスト結果保存用の配列を設定 #----------------------------- self.score[metric] = []
def __init__(self, W, b, optimizer, lr): # パラメータの設定 #self.W = W #self.B = b #self.dW = None # 重みの微分 #self.dB = None # バイアスの微分 #self.lr = lr # gradient descentの学習率 self.params = {'W': W, 'B': b} self.diffparams = {'W': None, 'B': None} self.x = None self.original_x_shape = None self.optimizer = _CallClass('common.optimizer', optimizer) self.optimizer = self.optimizer(lr)
def compile(self, loss, optimizer="sgd", lr=0.01, metrics=["r2", "rmse"]): self.func["loss"] = _CallClass("common.layers", loss) self.func["loss"] = self.func["loss"]() self.func["optimizer"] = _CallClass("common.optimizer", optimizer) self.func["optimizer"] = self.func["optimizer"]() # ---------------------------------------- # レイヤ内の設定 # ---------------------------------------- idx = 1 y = np.zeros((1, self.inputLayer[1])) for key, layer in self.sequential.items(): y = layer[0].compile(y) if "Dense" in key: # self.Dense[key + str(idx)] = layer self.params["W" + str(idx)] = layer[0].params["W"] self.params["b" + str(idx)] = layer[0].params["b"] idx += 1 # ---------------------------------------- # 精度検証用の関数を設定 # ---------------------------------------- param = ["train_", "val_"] for metric in metrics: if str(metric).lower() in ("r2"): metric = "r2_score" if str(metric).lower() in ("rmse"): metric = "rmse_score" self.func[metric] = _CallFunction("common.functions", metric) # -------------------------- # 結果保存用の配列を設定 # -------------------------- for i in param: name = str(i) + str(metric) self.logs[name] = [] # ----------------------------- # テスト結果保存用の配列を設定 # ----------------------------- self.score[metric] = []
def compile(self, loss, optimizer='sgd'): self.func['loss'] = _CallClass('common.layers', loss) self.func['loss'] = self.func['loss']() self.func['optimizer'] = _CallClass('common.optimizer', optimizer) self.func['optimizer'] = self.func['optimizer']()