回答編集履歴

6

サイトを追記

2017/07/18 09:32

投稿

pashango2
pashango2

スコア930

test CHANGED
@@ -28,4 +28,6 @@
28
28
 
29
29
 
30
30
 
31
+ [http://hellkite.hatenablog.com/entry/chainer_model_save](http://hellkite.hatenablog.com/entry/chainer_model_save)
32
+
31
33
  [http://studylog.hateblo.jp/entry/2016/01/05/212830](http://studylog.hateblo.jp/entry/2016/01/05/212830)

5

補足

2017/07/18 09:32

投稿

pashango2
pashango2

スコア930

test CHANGED
@@ -11,3 +11,21 @@
11
11
  上記の記事にあるように、ユーザー定義のクラスをunpickle化(load)する際に、ユーザー定義のクラスを復元しようとします。
12
12
 
13
13
  pickle化した時点とクラス構造が異なっていると、上手くunpickleする事ができません。
14
+
15
+
16
+
17
+ ---
18
+
19
+ 補足
20
+
21
+
22
+
23
+ 少し調べてみたのですが、`pickle`を使ってシリアライズする方法がよく載っていますが、これはあまり良い方法ではない気がします。
24
+
25
+ 上の記事でも分かるように、unpickleはものすごい複雑な処理をしますし、何よりバージョン間の互換性はありません。
26
+
27
+ `serializers`メソッドを使うほうが良いのではないかと思います。
28
+
29
+
30
+
31
+ [http://studylog.hateblo.jp/entry/2016/01/05/212830](http://studylog.hateblo.jp/entry/2016/01/05/212830)

4

補足

2017/07/18 09:29

投稿

pashango2
pashango2

スコア930

test CHANGED
@@ -1,4 +1,6 @@
1
1
  `pickle`のデータを作成(dump)した時点と、ロード(load)した時点で`LSTM`の`__init__`の引数の数が変わっていませんか?
2
+
3
+ (LSTMのクラス定義を変更しませんでしたか?)
2
4
 
3
5
 
4
6
 

3

追記

2017/07/18 09:24

投稿

pashango2
pashango2

スコア930

test CHANGED
@@ -1 +1,11 @@
1
1
  `pickle`のデータを作成(dump)した時点と、ロード(load)した時点で`LSTM`の`__init__`の引数の数が変わっていませんか?
2
+
3
+
4
+
5
+ [http://qiita.com/s-wakaba/items/f15b4aa579c018880758](http://qiita.com/s-wakaba/items/f15b4aa579c018880758)
6
+
7
+
8
+
9
+ 上記の記事にあるように、ユーザー定義のクラスをunpickle化(load)する際に、ユーザー定義のクラスを復元しようとします。
10
+
11
+ pickle化した時点とクラス構造が異なっていると、上手くunpickleする事ができません。

2

修正しました、すみませんでした。

2017/07/18 09:20

投稿

pashango2
pashango2

スコア930

test CHANGED
@@ -1,3 +1 @@
1
- すみませんードを読み間違えました
1
+ `pickle`のデータを作成(dump)した時点とード(load)した時点で`LSTM`の`__init__`の引数の数が変わっていませんか?
2
-
3
- 少し時間をください。

1

コードを読み間違えました

2017/07/18 09:17

投稿

pashango2
pashango2

スコア930

test CHANGED
@@ -1,13 +1,3 @@
1
- `pickle.load`関数の第一引数は`read`と`readline`の2つのメソッド(インターフェイス)があるオブジェクトでなくてはいけません。
1
+ すみません、コードを読み間違えました
2
2
 
3
-
4
-
5
- [https://docs.python.jp/3/library/pickle.html](https://docs.python.jp/3/library/pickle.html)
6
-
7
-
8
-
9
- > 引数 file には 2 つのメソッド、整数引数をとる read() と、引数を要求しない readline() メソッドがなければなりません。両方のメソッドはバイト列を返す必要があります。そのため file には、バイナリ読み込みとしてオープンされたディスク上のファイル、io.BytesIO オブジェクト、あるいはこのインタフェースに適合するその他のカスタムオブジェクトなどを指定できます。
10
-
11
-
12
-
13
- 渡された`LSTM`というオブジェクトは、その2つのメソッドが実装されていません。
3
+ 少し時間をください。