Pythonベース-jsonを用いたニューラルネットワーク構造情報のフォーマットdump&load


私たちはdumpとloadの1つのニューラルネットワークの構造情報を例にして、どのようにjsonを使ってデータのフォーマットdumpとloadを行うかを分析して、1つのニューラルネットワークを保存するのは自然に保存する必要があります:1.トポロジー、2.各層、各ニューロン間の重み値およびバイアス情報、3.これらの情報はNetworkクラスによって維持されています.このデータ保存プロセスをNetworkクラスのメンバー関数として使用することはできません.
def save(self, filename):
    data = {'topology':self.topology,
            'biases':[b.tolist() for b in self.biases],
            'weights':[w.tolist() for w in self.weights],
            'cost': self.cost.__name__}
    with open(filename, 'w') as f:
        json.dump(data, f)

データload:
def load(filename):
    with open(filename, 'r') as f:
        data = json.load(f)
    cost = getattr(sys.modules[__name__], data['cost'])
    net = Network(data['topology'], cost=cost)
    net.weights = [np.array(w) for w in data['weights']]
    net.biases = [np.array(b) for b in data['biases']]
    return net