cuda-convnet에서 데이터 조직 형식
import os
import cPickle
import numpy as np
import Image
def MakeBatch(load_path_list, save_path, class_list):
data = []
filenames = []
for load_path in load_path_list:
file_list = os.listdir(load_path)
for item in file_list:
if item.endswith(".jpg"):
n = os.path.join(load_path, item)
input = Image.open(n)
arr = np.array(input, order='C')
im = np.fliplr(np.rot90(arr, k=3))
data.append(im.T.flatten('C'))
filenames.append(item)
data = np.array(data)
out_file = open(save_path, 'w+')
flipDat = np.flipud(data)
rotDat = np.rot90(flipDat, k=3)
dic = {'batch_label':'batch 1 of 1', 'data':rotDat, 'labels':class_list, 'filenames':filenames}
cPickle.dump(dic, out_file, True)
out_file.close()
def MakeMate(data_batch_list, label_name_list, save_path):
aBatch = file(data_batch_list[0], 'rb')
l = cPickle.load(aBatch)
num_cases_per_batch = len(l['data'][0])
label_name = label_name_list
tmp = [0]*len(l['data'])
data_mean = [[0]]*len(l['data'])
for i in range(len(data_batch_list)):
f = file(data_batch_list[i], 'rb')
l = cPickle.load(f)
for j in range(len(l['data'])): # a batch 196608
for k in range(len(l['data'][j])): # a row 60
tmp[j] += l['data'][j][k]
for i in range(len(tmp)):
data = 0.0
data = round(float(tmp[i])/(len(data_batch_list)*num_cases_per_batch), 8)
t = [data]
data_mean[i] = t
data_mean = np.array(data_mean, dtype='f')
dic = {'num_cases_per_batch':num_cases_per_batch, 'label_names':label_name_list, 'data_mean':data_mean}
out_file = open(save_path, 'w+')
cPickle.dump(dic, out_file, True)
out_file.close()
if __name__=='__main__':
#class_list is a list that contain nums labels
load_path_list = ['/home/tj/Pictures/MakeBatch/accordion', '/home/tj/Pictures/MakeBatch/butterfly']
save_path = '/home/tj/Pictures/MakeBatch/OUTPUT/data_batch_1'
class_list = [1]*30 + [2]*30
MakeBatch(load_path_list, save_path, class_list)
label_name_list = ['accordion', 'butterfly']
data_batch_list = ['/home/tj/Pictures/MakeBatch/OUTPUT/data_batch_1']
save_path_meta = '/home/tj/Pictures/MakeBatch/OUTPUT/batches.meta'
MakeMate(data_batch_list, label_name_list, save_path_meta)
print 'end'
#f = file('/home/tj/Pictures/mybatch', 'rb')
#l = cPickle.load(f)
#print l['data']
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.