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

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

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

Kerasは、TheanoやTensorFlow/CNTK対応のラッパーライブラリです。DeepLearningの数学的部分を短いコードでネットワークとして表現することが可能。DeepLearningの最新手法を迅速に試すことができます。

キャッシュ

キャッシュはドキュメントやデータを一時的に保管するもので、アクセス処理時間を短くするために使用されます。

Python

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

Q&A

0回答

277閲覧

Python/pickle: 更新前のファイル情報が読み込まれる

HiroN..

総合スコア8

Keras

Kerasは、TheanoやTensorFlow/CNTK対応のラッパーライブラリです。DeepLearningの数学的部分を短いコードでネットワークとして表現することが可能。DeepLearningの最新手法を迅速に試すことができます。

キャッシュ

キャッシュはドキュメントやデータを一時的に保管するもので、アクセス処理時間を短くするために使用されます。

Python

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

0グッド

0クリップ

投稿2017/08/14 13:52

編集2017/08/16 11:14

###前提・実現したいこと
物体検出を行うため、以下のサイトを参考にしてKerasでSSDを行っています。
http://qiita.com/slowsingle/items/64cc927bb29a49a7af14
pickleを用いて教師信号をpklファイルにまとめるのですが、画像の名前(00XXXX.jpg)と物体の位置とクラス名が入ります。下のpyファイルでpklファイルを作成しました。
https://github.com/rykov8/ssd_keras/blob/master/PASCAL_VOC/get_data_from_XML.py

実現したいこと:上書き保存した情報を反映してpklファイルを作成すること。キャッシュ読み込みによる現象なら、pycを消した後、どこに上書き前のキャッシュが保存されているのか教えてください。

###発生している問題・エラーメッセージ
ファイル名、物体の位置とクラス名が記載されているxmlファイルに間違いがあったためgeditで訂正・上書き保存しました。pklファイルを確認すると上書き保存する前の間違った情報が反映されていました。

###該当のソースコード
Python3.5, Ubuntu14.04, Anaconda3による仮想環境。
1クラス判別のため、それ以外のクラスをコメントアウトし、一番下の3行から#を外しました。

import numpy as np
import os
from xml.etree import ElementTree

class XML_preprocessor(object):

def __init__(self, data_path): self.path_prefix = data_path self.num_classes = 1 self.data = dict() self._preprocess_XML() def _preprocess_XML(self): filenames = os.listdir(self.path_prefix) for filename in filenames: tree = ElementTree.parse(self.path_prefix + filename) root = tree.getroot() bounding_boxes = [] one_hot_classes = [] size_tree = root.find('size') width = float(size_tree.find('width').text) height = float(size_tree.find('height').text) for object_tree in root.findall('object'): for bounding_box in object_tree.iter('bndbox'): xmin = float(bounding_box.find('xmin').text)/width ymin = float(bounding_box.find('ymin').text)/height xmax = float(bounding_box.find('xmax').text)/width ymax = float(bounding_box.find('ymax').text)/height bounding_box = [xmin,ymin,xmax,ymax] bounding_boxes.append(bounding_box) class_name = object_tree.find('name').text one_hot_class = self._to_one_hot(class_name) one_hot_classes.append(one_hot_class) image_name = root.find('filename').text bounding_boxes = np.asarray(bounding_boxes) one_hot_classes = np.asarray(one_hot_classes) image_data = np.hstack((bounding_boxes, one_hot_classes)) self.data[image_name] = image_data def _to_one_hot(self,name): one_hot_vector = [0] * self.num_classes if name == 'nerve': one_hot_vector[0] = 1 else: print('unknown label: %s' %name) return one_hot_vector

import pickle
data = XML_preprocessor('/home/owner/data/VOCdevkit/VOC2019/Annotations/').data
pickle.dump(data,open('/home/owner/data/VOCdevkit/VOC2019/VOC2019.pkl','wb'))

###試したこと
キャッシュから読み込まれているのかと思い、仮想環境のすべてのpycファイルを削除しましたが、やはり上書き保存前の情報のままでした。

###補足情報(言語/FW/ツール等のバージョンなど)
UbuntuCleanerでシステムワイドにcacheを消しましたが古い内容を読み込むままでした。

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

quickquip

2017/08/14 14:39

提示されたソースではpickle.dump がコメントになっているのでpklファイルができるわけではないです。正しく**あなたが**pklファイルを作成したソースを質問に引用してください。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問