Exemplo n.º 1
0
    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
Exemplo n.º 2
0
    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] = []
        """
Exemplo n.º 3
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']()
     #----------------------------------------
     #レイヤ内の設定
     #----------------------------------------
     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] = []
Exemplo n.º 4
0
    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)
Exemplo n.º 5
0
    def __InitBias__(self, row, bias_initializer='zeros'):
        """
        閾値の初期設定

        Parameters
        ----------
        row : 重みの行数
        bias_initializer : biasを指定
        """
        method = _CallFunction('common.bias', bias_initializer)
        return method(row)
Exemplo n.º 6
0
    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
Exemplo n.º 7
0
    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)
Exemplo n.º 8
0
    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)
Exemplo n.º 9
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] = []
Exemplo n.º 10
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[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] = []
Exemplo n.º 11
0
 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')
Exemplo n.º 12
0
 def __init__(self):
     self.y = None  # linerの出力
     self.t = None  # 教師データ
     self.func = _CallFunction('common.functions', 'mean_squared_error')