質問するログイン新規登録

回答編集履歴

6

サイトを追記

2017/07/18 09:32

投稿

pashango2
pashango2

スコア930

answer CHANGED
@@ -13,4 +13,5 @@
13
13
  上の記事でも分かるように、unpickleはものすごい複雑な処理をしますし、何よりバージョン間の互換性はありません。
14
14
  `serializers`メソッドを使うほうが良いのではないかと思います。
15
15
 
16
+ [http://hellkite.hatenablog.com/entry/chainer_model_save](http://hellkite.hatenablog.com/entry/chainer_model_save)
16
17
  [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

answer CHANGED
@@ -4,4 +4,13 @@
4
4
  [http://qiita.com/s-wakaba/items/f15b4aa579c018880758](http://qiita.com/s-wakaba/items/f15b4aa579c018880758)
5
5
 
6
6
  上記の記事にあるように、ユーザー定義のクラスをunpickle化(load)する際に、ユーザー定義のクラスを復元しようとします。
7
- pickle化した時点とクラス構造が異なっていると、上手くunpickleする事ができません。
7
+ pickle化した時点とクラス構造が異なっていると、上手くunpickleする事ができません。
8
+
9
+ ---
10
+ 補足
11
+
12
+ 少し調べてみたのですが、`pickle`を使ってシリアライズする方法がよく載っていますが、これはあまり良い方法ではない気がします。
13
+ 上の記事でも分かるように、unpickleはものすごい複雑な処理をしますし、何よりバージョン間の互換性はありません。
14
+ `serializers`メソッドを使うほうが良いのではないかと思います。
15
+
16
+ [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

answer CHANGED
@@ -1,4 +1,5 @@
1
1
  `pickle`のデータを作成(dump)した時点と、ロード(load)した時点で`LSTM`の`__init__`の引数の数が変わっていませんか?
2
+ (LSTMのクラス定義を変更しませんでしたか?)
2
3
 
3
4
  [http://qiita.com/s-wakaba/items/f15b4aa579c018880758](http://qiita.com/s-wakaba/items/f15b4aa579c018880758)
4
5
 

3

追記

2017/07/18 09:24

投稿

pashango2
pashango2

スコア930

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

2

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

2017/07/18 09:20

投稿

pashango2
pashango2

スコア930

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

1

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

2017/07/18 09:17

投稿

pashango2
pashango2

スコア930

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