Hyunjun

param.pkl->params.csv

1. 계획서 업로드 [강현준, 권은진, 김효은, 하미르] 라즈베리파이에 이미지 프로세싱 딥러닝을 적용한 자동화 계산 시스템
2. 중간보고서(논문) 업로드 [강현준, 권은진, 김효은, 하미르] 이미지 인식 딥러닝을 적용한 자동화 계산 시스템_중간보고서(논문)
3. simple_convnet 원본코드 업로드
4. 프로그램의 속도보장을 위해 python->c++ 컨버팅 작업이 필요함
python 코드에서 가중치를 pickle 파일에 저장하는데 c++에서는 pickle 파일을 읽는 데에 어려움이 있음
pickletools라는 라이브러리가 있지만 에러가 많고, 자바, 파이썬, C++ 여러 언어를 지원해 무겁기 때문에 속도를 올리기 위한 컨버팅 작업에는 적절하지 않음
그래서, 파라미터를 저장하는 부분을 csv로 바꿔 C++에서 그 파일로 읽기위해 params.pkl을 params.csv로 바꾸는 코드를 추가함
\ No newline at end of file
......
This diff could not be displayed because it is too large.
import pickle as pk
import numpy as np
import csv
x = []
with open('params.pkl', 'rb') as f, open("params.csv", "w", newline='') as out:
x = pk.load(f)
# for key in x.keys():
# print(key, " : ", x[key])
writer = csv.DictWriter(out, ['key', 'shape', 'newline'], delimiter=',')
newline_ = csv.DictWriter(out, ['newline1', 'newline2'], delimiter=',')
wr = csv.writer(out, quotechar=None)
for key_ in x.keys():
print("Writing weights -",key_)
writer.writerow({'key':key_, 'shape':x[key_].shape, 'newline':None})
data_ = x[key_]
for s in x[key_]:
wr.writerow(s.flatten())
newline_.writerow({'newline1':None, 'newline2':None})
f.close()
out.close()