def accuracy(self, x, t, func): self.func['evaluation'] = _CallFunction('common.functions', func) y = self.predict(x) acc = self.func['evaluation'](y, t) return acc
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, 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 __InitBias__(self, rear_node, bias_initializer='zeros'): """ 閾値の初期設定 Parameters ---------- bias_initializer : biasを指定 rear_node : 次のnodeの行数 """ method = _CallFunction('common.bias', bias_initializer) self.params['b'] = method(rear_node)
def __InitBias__(self, row, bias_initializer='zeros'): """ 閾値の初期設定 Parameters ---------- row : 重みの行数 bias_initializer : biasを指定 """ method = _CallFunction('common.bias', bias_initializer) return method(row)
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 __InitWeight__(self, rear_node, weight_initializer='he'): """ 重みの初期設定 Parameters ---------- weight_initializer : 重みの標準偏差を指定 'relu'または'he'を指定した場合は「Heの初期値」を設定 'sigmoid'または'xavier'を指定した場合は「Xavierの初期値」を設定 rear_node : 次のnodeの行数 """ if str(weight_initializer).lower() in ('relu', 'he'): weight_initializer = 'he_nomal' elif str(weight_initializer).lower() in ('sigmoid', 'xavier'): weight_initializer = 'glorot_uniform' method = _CallFunction('common.weight', weight_initializer) scale = method(self.units) self.params['W'] = scale * np.random.randn(self.units, rear_node)
def __InitWeight__(self, row, col, n, weight_initializer='he'): """ 重みの初期設定 Parameters ---------- row : 重みの行数 col : 重みの列数 n : 前の層のユニット数 weight_initializer : 重みの標準偏差を指定 'relu'または'he'を指定した場合は「Heの初期値」を設定 'sigmoid'または'xavier'を指定した場合は「Xavierの初期値」を設定 """ if str(weight_initializer).lower() in ('relu', 'he'): weight_initializer = 'he_nomal' elif str(weight_initializer).lower() in ('sigmoid', 'xavier'): weight_initializer = 'glorot_uniform' method = _CallFunction('common.weight', weight_initializer) scale = method(n) return scale * np.random.randn(row, col)
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 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 __init__(self): self.loss = None #損失 self.y = None #softmaxの出力 self.t = None #教師データ self.func = _CallFunction('common.functions', 'softmax') self.loss = _CallFunction('common.functions', 'cross_entropy_error')
def __init__(self): self.y = None # linerの出力 self.t = None # 教師データ self.func = _CallFunction('common.functions', 'mean_squared_error')