

現在，[bindnet][1] というライブラリーを用いてRecurrent Spiking Neural
netを作成しており，トレーニングデータ（npzファイル）をload（xとyの値）してシミュレーションを行いたいのですが，enumerate関数で取り出そうとすると，"unexpected
EOF while parsing"
というエラーが表示されます．npzファイルの要素の取り出し方に問題があるのでしょうか？どなたか，ご教示の程よろしくお願い致します．  
bindesnetというライブラリーを使用しています．  
[1] https://bindsnet-docs.readthedocs.io/bindsnet.analysis.html

トレーニングデータはGitHubのコードを参考にしています[2]．リンクのtrain_set.npzです．このgitのコードをbindsnetを使ってrecurrent
spiking neural netに変換しようとしています．  
train_set.npzからxとyの値を取り出したいです．  
[2] <https://github.com/exelban/myo-armband-nn>

**tain_set.npzに関連するコード（includeディレクトリのdata.py)**

[code]

    import numpy as np
    def get_data_set(name="train"):
    x = None
    y = None
    if name is "train":
        npzfile = np.load("C:/Users/namae/Desktop/myo-python-1.0.4/myo-armband-nn-master/data/train_set.npz")
        #("C:/Users/namae/Desktop/myo-python-1.0.4/myo-armband-nn-master/data/train_set.npz")
        #("./data/train_set.npz")
        x = npzfile['x']
        y = npzfile['y']
    elif name is "test":
        npzfile = np.load("./data_set/test_set.npz")
        #("C:/Users/namae/Desktop/myo-python-1.0.4/myo-armband-nn-master/data/train_set.npz")
        #("./data_set/test_set.npz")
        x = npzfile['x']
        y = npzfile['y']
      return x, y
    
[/code]

エラーが出るコード部分（erumerateからrangeに変えたり，numpyの要素名を入れたりしましたがが．うまくいかなかったです）おそらくエラーは最後の行だと思います  
参考にしているコード  
  
**エラー文**  

[code]

    C:\Python36\python.exe C:/Users/namae/Desktop/myo-python-1.0.4/bindsnet-
      master/bindsnet/preRSNN.py 
    
    
    File "C:/Users/namae/Desktop/myo-python-1.0.4/bindsnet master/bindsnet/preRSNN.py", line 84 SyntaxError: unexpected EOF while parsing
    
[/code]

**エラー箇所**

[code]

    for i, (x, y) in enumerate(get_data_set("train")):
    
[/code]

次に現在，実装しているコードを示します．エラー箇所は最後の分です．  

[code]

    import torch
    from bindsnet.network import Network
    from bindsnet.network.nodes import Input, LIFNodes
    from bindsnet.network.topology import Connection
    from bindsnet.network.monitors import Monitor
    from bindsnet.analysis.plotting import plot_spikes, plot_voltages
    import matplotlib.pyplot as plt
    from include.model import model
    from include.data import get_data_set
    import numpy as np 
    x, y, output, global_step, y_pred_cls = model(6)
    test_x, test_y = get_data_set()
    test_l = ["Relax", "Ok", "Fist", "Like", "Rock", "Spock"]
    train_x, train_y = get_data_set()
    time = 500
    network = Network()
    source_layer = Input(n=100, sum_input=True)
    target_layer = LIFNodes(n=1000, sum_input=True)
    network.add_layer(
        layer=source_layer, name='A'
    )
    network.add_layer(
        layer=target_layer, name='B'
    )
    foward_connection = Connection(
    source=source_layer,
    target=target_layer,
    w= 0.05 + 0.1*torch.randn(source_layer.n, target_layer.n),
    ) 
    network.add_connection(
        connection=foward_connection, source='A', target='B'
    ) 
    recurrent_connection = Connection(
       source=source_layer,
       target=target_layer,
        w=0.025*(torch.eye(target_layer.n) - 1),
    )
    network.add_connection(
       connection=recurrent_connection, source="B", target="B")  
    source_monitor = Monitor(
       obj=source_layer,
       state_vars=("s",), 
       time=time, )
    target_monitor = Monitor(
       obj=target_layer,
       state_vars=("s","v"), # スパイクと電圧の記録
       time=time,)
    network.add_monitor(monitor=source_monitor, name="A")
    network.add_monitor(monitor=target_monitor, name="B")
    for l in network.layers:# 状態変数のmonitor
        m = Monitor(network.layers[l], state_vars=['s'], time=time)
        network.add_monitor(m, name=l)
    x, y = get_data_set("C:/Users/namae/Desktop/myo-python-1.0.4/myo-armband-nn- 
                        master/data/train_set.npz")
    grads = {}
    lr, lr_decay = 1e-2, 0.95
    criterion = torch.nn.CrossEntropyLoss() # 誤差計算
    spike_ims, spike_axes, weights_im = None, None, None 
    for i, (x, y) in enumerate(get_data_set("train")):
    
[/code]


CC BY-SA 4.0
2020-11-05T08:16:55.963
71748
2020-11-06T09:12:39.457
2020-11-06T09:12:39.457
41671
41671
question
python network numpy pytorch
unexpected EOF while parsing のエラーを直したい

[code]

    get_data_set("C:/Users/namae/Desktop/myo-python-1.0.4/myo-armband-nn-master/data/train_set.npz")
    
[/code]

ではなく、

[code]

    get_data_set("train")
    
[/code]

だと思います。[ソースコード](https://github.com/exelban/myo-armband-
nn/blob/master/include/data.py)を見ると、データセット・ファイルのパスではなく文字列の`"train"`か`"test"`を期待していますね。


CC BY-SA 4.0
2020-11-06T05:39:58.707
71763
2020-11-06T05:39:58.707
21092
71748
answer