Hyunjun

param.pkl->params.csv

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