2017-03-28 27 views
-2

私は神経回路網で何かを学ぼうとしており、私は最初のプログラムを書いています。私は、調整されたパラメータをファイルに保存し、後で(1時間、1日、または1年単位で)読み込むことによって、ネットのトレーニングに費やされる時間を無駄にしたくありません。 ここwariable私が保存したいネットワーククラスの構造のコンストラクタです:、後でPythonで使用するための変数の保存

def __init__(self, sizes): 
    self.num_layers = len(sizes) 
    self.sizes = sizes 
    self.biases = [np.random.randn(y, 1) for y in sizes[1:]] 
    self.weights = [np.random.randn(y, x) 
      for x, y in zip(sizes[:-1], sizes[1:])] 
    return 

、ここではそれを保存してロードする私の試みだ悲惨指摘どこio.UnsupportedOperation: not readableエラーを与える失敗

def save(net, name = "noname"): 
    with open("{0}_nn_sizes.nn".format(name),"w") as s: 
     s.write(str(net.sizes)) 
    with open("{0}_nn_weights.nn".format(name),"w") as w: 
     w.write(str(net.weights)) 
    with open("{0}_nn_biases.nn".format(name),"w") as b: 
     b.write(str(net.biases)) 
    return 

def load(name = "noname"): 
    with open("{0}_nn_sizes.nn".format(name),"w") as s: 
     net=nn.Network(list(s)) """ERROR HERE""" 
    with open("{0}_nn_weights.nn".format(name),"w") as w: 
     net.weights = list(w) 
    with open("{0}_nn_biases.nn".format(name),"w") as b: 
     net.biases = list(b) 
    return net 

実際には、アプローチが悪いこともありますので、私の抱える問題を解決する方法についての示唆やヒントを喜んで受け入れています。彼のヒントのコインランドリーへ

+5

Pythonコードを投稿する際にインデントを正確に再現してください。それ以外の場合は、コードに新しいエラーを導入しています。 – khelwood

+3

「うんざりして失敗する」と言ったらどういう意味ですか?エラーメッセージが表示されますか?それとも、アウトプットは期待通りのものではないのですか? – asongtoruin

+2

「卑劣に」とはどういう意味ですか?それはちょうど発明されていますか? – khelwood

答えて

0

おかげで、私は次のコード

import pickle 

def save(net, name = "noname"): 
    with open("{0}.nn".format(name),"wb") as save_file: 
     pickle.dump(net,save_file) 

def load(name = "noname"): 
    with open("{0}.nn".format(name),"rb") as load_file: 
     return pickle.load(load_file) 

で任意のコメントをピクルスライブラリを使用して実用的なソリューションを見つけ、まだかかわらず、感謝しています。

関連する問題