def load_all(self):
"""The function to load all data and labels
Give:
data: the list of raw data, needs to be decompressed
(e.g., raw JPEG string)
labels: 0-based labels, in format of numpy array
"""
start = time.time()
print("Start Loading Data from CSV File {}".format(
self._source_fn))
try:
db_ = lmdb.open(self._source_fn)
data_cursor_ = db_.begin().cursor()
if self._label_fn:
label_db_ = lmdb.open(self._label_fn)
label_cursor_ = label_db_.begin().cursor()
# begin reading data
if self._label_fn:
label_cursor_.first()
while data_cursor_.next():
value_str = data_cursor_.value()
datum_ = caffe_pb2.Datum()
datum_.ParseFromString(value_str)
self._data.append(datum_.data)
if self._label_fn:
label_cursor_.next()
label_datum_ = caffe_pb2.Datum()
label_datum_.ParseFromString(label_cursor_.value())
label_ = caffe.io.datum_to_array(label_datum_)
label_ = ":".join([str(x) for x in label_.astype(int)])
else:
label_ = str(datum_.label)
self._labels.appen(label_)
# close all db
db_.close()
if self._label_fn:
label_db_.close()
except:
raise Exception("Error in Parsing input file")
end = time.time()
self._labels = np.array(self._labels)
print("Loading {} samples Done: Time cost {} seconds".format(
len(self._data), end - start))
return self._data, self._labels
DataManager.py 文件源码
python
阅读 23
收藏 0
点赞 0
评论 0
评论列表
文章目录