Pythonベース-jsonを用いたニューラルネットワーク構造情報のフォーマットdump&load
私たちはdumpとloadの1つのニューラルネットワークの構造情報を例にして、どのようにjsonを使ってデータのフォーマットdumpとloadを行うかを分析して、1つのニューラルネットワークを保存するのは自然に保存する必要があります:1.トポロジー、2.各層、各ニューロン間の重み値およびバイアス情報、3.これらの情報はNetworkクラスによって維持されています.このデータ保存プロセスをNetworkクラスのメンバー関数として使用することはできません.
データload:
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