質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

受付中

doc2vecの事前学習データを読み込もうとするとpickle data was truncatedというエラーが出てきてしまう

gamdam
gamdam

総合スコア2

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0回答

-1評価

0クリップ

265閲覧

投稿2022/05/18 03:42

Googleコラボラトリーでdoc2vecの事前学習データを読み込もうとするとpickle data was truncatedというエラーが出てきてしまいます。解決策を教えていただきたいです。

from

  model = Doc2Vec.load("model/jawiki.doc2vec.dbow300d.model")

UnpicklingError: pickle data was truncated

容量が大きかったため容量が大きかったため、modelというフォルダを作成しそこに事前学習データを取り込みました

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

AbeTakashi

2022/05/18 04:28

"UnpicklingError: pickle data was truncated"で検索すると色んな情報が出てきますが、この辺は確認して試されたのでしょうか? この辺を試してもダメだったのなら、試したことはすべて質問文に書くようにした方がいいです(質問文は追記が可能です)。回答者がアドバイスしたところで「それはやりました」となると、ただの無駄になりますので。 参考) https://teratail.com/help/question-tips これまでの質問もそうですが、的確な回答をお望みであれば、上のリンクをすべて読んでいただき、必要な情報をしっかり記載することをオススメします。
jbpb0

2022/05/18 06:56

当方のMacで、 https://yag-ays.github.io/project/pretrained_doc2vec_wikipedia/ から「jawiki.doc2vec.dbow300d.tar.bz2」を落として展開し、含まれてた四つのファイルを質問者さんと同じ「model」というディレクトリに置いて、質問のコードを実行しても、エラー出ませんでした 質問者さんがファイルを落とす時か展開する時に不完全で、ファイルが壊れてるのではないですかね 当方の環境 Python 3.7.7 gensim 3.8.3
gamdam

2022/05/18 08:38

ありがとうございます。同じディレクトリに入れようとしたのですが、Google colabだと、四つのファイルのうち2つしか同じディレクトリに表示されず、それ以外は同じディレクトリに表示されません。
jbpb0

2022/05/18 09:00 編集

> 四つのファイルのうち2つしか同じディレクトリに表示されず googleコラボで下記を実行したら、どうなりますか? 二つしかありませんか? !ls -l model
jbpb0

2022/05/18 08:59

「model」に「jawiki.doc2vec.dbow300d.model」しか無い場合は、 No such file or directory: 'model/jawiki.doc2vec.dbow300d.model.trainables.syn1neg.npy' というエラーが出ました そこで、「model」に「jawiki.doc2vec.dbow300d.model.trainables.syn1neg.npy」だけ追加したら、 No such file or directory: 'model/jawiki.doc2vec.dbow300d.model.wv.vectors.npy' というエラーが出ました そこで、「model」に「jawiki.doc2vec.dbow300d.model.wv.vectors.npy」も追加したら、 No such file or directory: 'model/jawiki.doc2vec.dbow300d.model.docvecs.vectors_docs.npy' というエラーが出ました そこで、「model」に「jawiki.doc2vec.dbow300d.model.docvecs.vectors_docs.npy」も追加したら、すなわち、「model」に四つのファイルがある状態に戻したら、エラーが出なくなりました ファイルが不足してる場合のエラーは、上記の通りで「pickle data was truncated」ではありませんでしたので、やはり質問者さんが実行してる環境ではファイルが壊れてるのではないですかね
gamdam

2022/05/18 09:03

自分はGoogleコラボ内に、modelというフォルダを作って、その中に四つのファイルをドラックアンドドロップで入れようとしたのですが二つしか入れることができませんでした。使っているのはWindowsです。よろしかったら、どのように一つのディレクトリにしたか教えていただいてもよろしいでしょうか?また、どの場所にそのコードも入れるのかも教えていただきたいです。 お手数かけますがよろしくお願いします。
jbpb0

2022/05/18 09:43 編集

私は、最初のコメントに書いたようにMacで実行して確認してます Mac内に「jawiki.doc2vec.dbow300d.tar.bz2」を落として、ダブルクリックしたら展開されて「jawiki.doc2vec.dbow300d」というディレクトリができて、その中に四つのファイルがありましたので、ディレクトリ名を「jawiki.doc2vec.dbow300d」から「model」に変えました こちらでも、それらの四つのファイルをgoogleコラボにアップロードして、どうなるか確認してみます
jbpb0

2022/05/18 09:15

> どの場所にそのコードも入れるのか 「そのコード」とは、 !ls -l model のことですか? もしそうなら、質問に記載のコード(model = Doc2Vec.load(...)のすぐ上に追加してみてください
gamdam

2022/05/18 09:28

ありがとうございます。ファイルが以下のjawiki.doc2vec.dbow300d.model、jawiki.doc2vec.dbow300d.model.wv.vectors.npyの 2つしか入れれなかったため、他のファイルがありませんという上記のエラーが実際に出ました。他の2つも同じようにドラックアンドドロップしましたが、入れることができませんでした。
jbpb0

2022/05/18 09:34

> 他のファイルがありませんという上記のエラーが実際に出ました。 「pickle data was truncated」と、両方出たのですか? 当方でMacで確認した場合は、上に書いた通り「No such file or directory...」しか出ませんでしたが
gamdam

2022/05/18 09:35

pickle data was truncatedはもう出なくなりました! No such file or directory...のみでています
jbpb0

2022/05/18 09:40

どこにアップロードしました? googleコラボにですか? それとも、googleドライブにですか?
gamdam

2022/05/18 09:49

Googleコラボにアップロードしました ソースコードが書けるところの左側にファイルマークがあるので、そこでmodelのフォルダを作りました。そこにファイルをドラックアンドドロップで入れようとしました。
jbpb0

2022/05/18 09:52 編集

四つのファイルをgoogleコラボにアップロードし始めましたが、サイズが220MBくらいの「jawiki.doc2vec.dbow300d.model」をアップロードするのに20分くらいかかりました サイズが1.4GBくらいの「jawiki.doc2vec.dbow300d.model.docvecs.vectors_docs.npy」は、20分で1/6くらいしかアップロードできてないので、全部終わるのに2時間くらいかかりそう 他の二つはサイズが2.2GBくらいあるので、それぞれ3時間くらいかかりそう したがって、四つのファイルを全部アップロードすると、当方の条件では8時間以上かかりそうなので、止めました ネットワークの速度に依存する話なので、質問者さんの条件ではもっと早く終わるかもしれませんが
gamdam

2022/05/18 09:57

jawiki.doc2vec.dbow300d.modelとjawiki.doc2vec.dbow300d.model.docvecs.vectors_docs.npyはおなじディレクトリに入れれたのですが、私の場合は他のがアップロードできないのですが、同じディレクトリに入れれそうですか?
gamdam

2022/05/18 10:05

Googleコラボでは、解凍したディレクトリごとアップロードできますか?
jbpb0

2022/05/18 10:10 編集

ご存じだと思いますが、下記に書かれてるように、googleコラボはセッションが終了(ランタイムがリセット)したら、アップロードしたファイルは全部消えてしまいます https://kenko-keep.com/12hour-90minit/ もし質問者さんのネットワーク環境が良くて、ファイルのアップロードが当方よりも格段に早く終わって1時間くらいで終わるとしても、セッションが終了して再度実行したいとなったらまた1時間かけてアップロードすることになります もし当方と同じくらい時間がかかるなら、最アップロードに8時間以上かかります そんなの時間のムダなので、googleドライブにアップロードして、googleドライブをコラボにマウントして使う方がいいですよ googleドライブにアップロードしたデータは、コラボとは無関係なので消えません https://interface.cqpub.co.jp/ail01/ の、「2.ファイルをアップロードする」の「〇 Googleドライブへアップロード」と、「3.ファイルのパスを確認する」の「〇 マイドライブ・フォルダのパス」を見てください
gamdam

2022/05/18 10:15

一度ためしてみたいと思います。 協力していただいてありがとうございます!
jbpb0

2022/05/18 10:27

> Googleコラボでは、解凍したディレクトリごとアップロードできますか? googleコラボは、たぶんアップロード時にはファイルを指定しないとダメだったような googleドライブは、ディレクトリ丸ごとアップロードできます http://one-u.jp/gsuite/2019/08/12/google-drive-howto/#index_id2 の「Googleドライブの基本的な使い方をご紹介!」の「【使い方1】ファイルをアップロードする方法」を見てください 「フォルダのアップロード」がそれです
gamdam

2022/05/18 10:54

フォルダをアップロードしたら、model = Doc2Vec.load("model/jawiki.doc2vec.dbow300d.model")はパスを変えるだけで大丈夫ですか?
jbpb0

2022/05/18 12:06

> model = Doc2Vec.load("model/jawiki.doc2vec.dbow300d.model")はパスを変えるだけで大丈夫ですか? はい

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。