1) [git init] 처음에 깃한테 어떤 폴더를 보라고 시킵니다. '야 여기 좀 보고 앞으로 이 폴더에서 일어나는거 싹다 기록해놔.' 서기를 정하고 서기한테 '이제 우리가 너한테 모든 파일을 다 보낼거야'라고 합니다.
2) 열심히 그 폴더 안에서 지지고 볶습니다. 새 폴더도 만들고 코딩한 파일도 만들고 하면서요. 서기한테 보내기 전 내 컴퓨터에서 열심히 작업을 하는 것과 같습니다.
3) [git status] 그리고 깃한테 한번 쓱 물어봅니다. '잘 기록했니?' (물론 굳이 안물어봐도 됩니다. 알아서 잘 하니까요? 그치만... 궁금하잖아요?) 그러면 컴퓨터인 깃은 싹다 기록을 해놨다고 얘기를 하죠. 서기도 마찬가지 일 겁니다.
4) [git add] 그렇다면 그 변경사항 중 변경이 저장되길 원하는 것만 선택합니다. 이 순간부터 단순히 컴퓨터에 저장된 것이 아닌 내부적으로 '스테이지'라고 불리는 곳에 따로 입력해둡니다. 서기의 컴퓨터에게 보내기위해 메일에 따로 업로드를 합니다.
5) [git commit [파일명] -m "뭐라뭐라"] 그리고 현재 서기한테 던져준 파일들을 한 뭉텅이로 만들고 이 뭉텡이가 뭔지 설명을 적어줍니다. 서기 컴퓨터에 저장할 내용입니다. 여기까지 하면 서기가 서기 컴퓨터에 파일을 영구히 저장했습니다. 이것을 '레포'라고 부릅니다.
6) 깃헙이라는 클라우드 서비스에 프로젝트 저장소를 만듭니다. 가령 서기가 단톡방 혹은 옵톡을 파는 것과 같습니다.
7) [git remote add] 컴퓨터에게 깃헙 주소를 알려줍니다. 사람들에게 옵톡 주소를 알려주는 것과 같습니다. 딱 한번만 알려주면, 다른 사람들이 방에 주소 없이 들어올 수 있듯 깃헙에도 한번만 해주면 따로 이 과정없이 바로 올릴 수 있습니다.
8) [git push] 그리고 마지막으로 깃헙에 올리면 끝납니다. 서기도 단톡방에 파일을 올려서 모든 팀원들이 볼 수 있게 하였습니다.
2. 저번에 git clone했던 models폴더 내의 research 안에서 data라는 폴더를 새로 만들어줍시다.
3. 다운로드 받은 images.tar.gz과 annotations.tar.gz파일을 압축을 풀어주고, 각각 생성된 images폴더와 annotations폴더를 그대로 data라는 폴더 안에 넣어 줍시다.
4. 구글 측에서는 항상 데이터의 인풋을 tfrecord의 형태로 입력하기를 권장합니다. 구글에서 배포한 이 예시에서도 tfrecord를 사용하게 되는데요. 물론 튜토리얼 과정이기 때문에 구글측에서 이미 Oxford-IIIT Pets Dataset을 TFrecord로 만드는 파일 역시 object-dection폴더 안에 들어있습니다. 참고로 [username]은 각 컴퓨터에 맞는 사용자 이름으로 바꾸어 주셔야 합니다!
구글 문서에서 tfrecord를 만들 때 WARNING이라고 몇개 뜨는 게 있는데, 별로 신경쓰지 않아도 된다고 나와있습니다.
5. 저대로 실행시키면 우리가 만든 data폴더에 train.pet_faces_train.record-00000-of-00010로 시작하는 파일이 10개 생성되고, pet_faces_val.record-00000-of-00010로 시작하는 파일이 10개 생성됩니다.
6. 인풋데이터는 이제 완성되었습니다. 이제 학습을 시키면 되는데, 완전히 처음부터 학습시키기에는 우리가 기본적으로 가지고 있는 컴퓨터의 컴퓨팅 파워가 너무너무너무 작습니다. 그러니 누군가가 먼저 엄청난 컴퓨팅 파워로 학습시켜놓은 것을 가져다가 마지막에 끝단만 살짝 바꾸어서 사용해보도록 하겠습니다. 이것을 transfer learning 혹은 fine tunning이라고 합니다. 먼저 이미지넷에서 상받은 Resnet으로 MS-COCO데이터셋에 대해서 Faster-RCNN 기술로 학습시켜놓은 훈련된(pretrained) 데이터를 받아오겠습니다. >>링크<<
7. 다운받은 faster_rcnn_resnet101_coco_11_06_2017.tar.gz를 압축을 풀면 model.ckpt로 시작하는 파일이 3종류가 있습니다.(~.data-00000-of-00001, ~.index, ~.meta) 전부 복사한 뒤 우리의 data폴더 내에서 다시 model이라는 폴더를 만들어 준 뒤에 거기에 붙여넣어 줍니다.
8. 이제 pipeline이라는 config파일만 만들어주면 바로 tfrecord의 데이터를 pretrain된 모델을 가지고 새로 학습을 시작합니다.
8-1) 먼저 jupyter와 같이 문서를 수정할 수 있는 에디터를 켜주세요. 메모장도 괜찮습니다.
8-2) object_detection폴더 안의 samples폴더 안의 configs 폴더로 들어갑니다.
8-3) .config라 쓰여있는 파일이 많은데, 여기에서 faster_rcnn_resnet101_pets.config 파일을 열어주세요.
8-4) fine_tune_checkpoint를 검색하셔서 그 오른쪽에 다운받은 model.ckpt위치를 적어줍니다. 저희가 진행한 상에서는 아래와 같이 적어주시면 됩니다.
8-7) eval_input_reader에는 train_input_reader에서 적어주었던 주소값을 그대로 다시 써주면 됩니다. 다만 input_path에서 pet_faces_train.record-?????-of-00010을 pet_faces_val.record-?????-of-00010으로만 바꿔주시면 됩니다.
(사실 PATH_TO_BE_CONFIGURED 부분만 바꿔주면 되지만, 헛갈림 방지를 위해 전부 작성하였습니다.)
9. 자 이제 학습을 시작합시다. 학습은 object_detection폴더 안에 있는 moel_main.py가 합니다. 그리고 결과 ckpt가 저장될 위치는 data폴더 안에 output폴더로 지정하겠습니다. 먼저 data폴더 안에 output폴더를 만들어주세요. 아래 구문을 실행하면 자동으로 학습이 시작됩니다. Warning 같은 글자가 계속 뜨지만 신경 안쓰셔도 됩니다.
10. 만약 OOM에러(OOM when allocating tensor with shape[1,1024,38,57] and type float on /job:localhost/replica:0/task:0/device:GPU:0 by allocator GPU_0_bfc)가 나신다면 그래픽카드 메모리 부족이 원인이므로 .config파일에서 제일 상단에 보이는 keep_aspect_ratio_resizer에서 크기를 줄이고 진행하시면 진행이 됩니다. 혹은 컴퓨터를 재부팅하여 리소스를 다시 확보하는 것도 괜찮은 방법입니다.
그리고 프로파세타몰을 사용하는 이유는 다름아닌 1번의 물리화학적 특성을 변형하기 위해서이다.
사실 처음에는 아세트아미노펜을 바로 iv하면 독성기전이 있기 때문인가하고 생각하였으나, 미국에 OFIRMEV라는 아세트아미노펜을 iv로 사용할 수 있는 약이 있는 시점에서 이 가설은 기각되었다.
추가+) 우리나라에도 아세트아미노펜 iv 제제인 프로파 인퓨전(Profa infusion)이 있다. 약가는 비싸서 16,500원
그래서 더 찾아보니 위키피디아 문서에 프로파세타몰은 아세트아미노펜의 water solubility를 증가시킨 것이라고 짧게 언급이 되어(링크) 물에 대한 용해도의 문제가 있었을 것이라 생각하게 되었다.
아세트아미노펜에 대한 위키피디아 문서에는 상온(20’C)에서 최대 14mg/mL의 용해도를 가진다고 나와있고 이것을 약전 기준인 1g을 녹이는데 필요한 용매의 양으로 나타내면 약 72.4mL 즉, 조금 잘 녹는다(sparingly soluble)라는, iv로 쓰기에는 조금 거시기한 결과가 나온다.
추가+) 물론 단일성분 iv제제로 나와있는 Ofirmev나 프로파 인퓨전의 경우 10mg/ml가 항상 기본이다. 이는 상온 포화용해도 안에 있다.
프로파세타몰 문서에서 직접적으로 수용해도에 대해 나와있었다면 문제는 순식간에 완벽한 팩트로 해결됐겠지만, 아쉽게도 그 내용에 대해서는 써있지않아 실제로 아세트아미노펜 단일로 iv제제가 있는데, 정말 수용해도가 문제일까라는 문제에 봉착하게 되었다.
그래서 조금 더 찾아본 결과 아세트아미노펜 iv제제인 OFIRMEV는 조성이 조금 독특함을 알 수 있었다.(링크) 추가+) 프로파 인퓨전과 같은 국내 생산 아세트아미노펜 iv제제의 경우 조성이 나와있지 않지만 Ofirmev와 비슷할 것으로 추측된다.
또한 OFIRMEV의 FDA 승인일은 2010년 11월 3일이지만 프로파세타몰의 pubchem문서의 최초 등록일이 2005년 8월 8일인 것을 보았을 때, 수용해도의 문제로 처음 그 물리화학적 특성을 개선한 전구약물인 프로파세타몰이 먼저 사용되었고 그 이후에 전구약물이 아닌 아세트아미노펜 자체로 사용할 수 있는 iv제제가 미국에서 승인이 된 것으로 보인다.
추가+) 우리나라에서는 2009년 3월에 '프로파 인퓨전'이 최초로 승인을 받았다.
결국 수용해도가 문제였다는 것을 알게되었고, 아세트아미노펜 단일로 쓸 수 있는 iv제제도 있는 것을 알게되었는데 왜 아직도 프로파세타몰을 꾸준히 사용할까에 대한 의문이 남아있다.
그 가설은 두가지로 1) 분명히 OFIRMEV와 같은 아세트아미노펜 iv제제는 그 조성이나 시기를 보았을 때 프로파세타몰에 비하여 비쌀 것 2) 이미 프로파세타몰에 대한 생산 공정이 확립되어 훨씬 싼 가격에 만들 수 있을 것 이 그 가설이었다.
사실 2번 가설의 경우 직접적으로 인터넷 검색으로 알아볼 수 있는 것에 한계가 있어 팩트로 검증은 어렵지만, 병원에서 그렇게 많이 사용하는 것을 보면 신빙성이 있다고 생각된다.
그리고 1번 가설의 경우 미국 약가를 직접비교할 수는 없었지만 대략적인 수준만 비교해보더라도, OFIRMEV는 아세트아미노펜 1g당(즉, 100mL당) $40(46,620원(19.06.30 기준)의 상당한 고가인데 반해 프로파세타몰의 대표주자인 데노간은 국내 수가 1,530원이라는 굉장히 저렴한 가격임을 알 수 있다.
추가+) 위에서도 말했지만, 국내 생산 프로파 인퓨전의 경우 약가 16,500원이며, 비급여이기 때문에 사용하는 병원마다 약가가 더 비쌀수도 있다.
추가+) 또한 데노간의 정식 생산처인 영진약품 홈페이지에서 결정적으로 수용해도가 문제라는 것을 알 수 있는데,
'사용 직전 용해액으로 용해시킨 후 1∼2분내 근육주사, 정맥주사하거나 정맥 내 점적주입한다.' '정맥내 주입의 경우 5% 포도당 주사액 또는 생리식염 주사액 125 mL를 이용하여 15분내에 점적주입한다.' '일단 재구성한 제품은 2시간 이내에 사용해야 한다.'
는 부분에서 프로파세타몰이 수용액 상에서 가수분해에 취약하다는 점을 알 수 있으며, 일단 그렇게 가수분해가 되고 나면 용해도 문제로 아세트아미노펜이 용출된다고 하면 가설이 성립한다. 그리고 바로 그 아래에 나와있는 문구는
정맥내 주입시 불용의 파라세타몰로 가수분해될 수 있으므로 이때 점적주입병의 생성물은 투여하지 말아야 한다.
해결되었다.
즉, 프로파세타몰이라는 아세트아미노펜의 전구체를 사용하는 이유는 수용해도 때문이다. 그리고 조금 더 나아가 보자면 약가의 문제가 있다.
요약: 프로파세타몰도 점적주입할 수 있지만, 가수분해되었을 시 불용의 아세트아미노펜으로 용출된다.(용해도 이슈) 프로파 인퓨전과 같은 점적주입 전용의 제제는 프로파세타몰 점적주입 시간과 같은 15분이지만, 상온에서 용출되는 것이 없다. 그러나 데노간과 같은 프로파세타몰에 비해 엄청 비싸다.
판토텐산(비타민 B5)의 전구체로 피부로 흡수된 뒤 판토텐산으로 전환되어 피부 재생 과정에 도움을 줌 비판텐에 들어있는 성분
벤투락투벡스 류의 흉터 연고는 비대성(켈로이드성) 흉터보다는 색소 침착이 심한 흉터에 도움이 많이 됩니다.
하루 1-4회 2-3분간 마사지 하듯 발라주어 피부에 흡수시켜 줍니다.
더마틱스 울트라(켈로코트, 시카케어)의 주요 작용 성분들
CPX(Cyclopentasiloxane)
수분 손실을 방지 피부를 평평하고 부드럽게 유지해 줌
비타민 C
UVA와 UVB로 부터 피부를 보호 착색을 흐리게 해 줌
더마틱스 울트라 류의 흉터 연고 및 시트는 비대성(켈로이드성) 흉터에 더 도움이 많이 됩니다.
하루 1-2회 얇게 발라주면 됩니다.
시카케어의 경우 실리콘 시트이므로 주름이 많은 부분이나 땀이 많이 차는 부위에서는 접착력이 떨어질 수 있습니다.
흉터 연고는 상처가 아문 뒤(약 상처난 뒤 2주 뒤)에 사용하는 연고입니다. (상처에 사용하는 약이 아닙니다.)
가장 좋은 결과는 사실 벤투락투벡스류의 흉터연고와 더마틱스 울트라류의 흉터연고를 동시에 사용하는 것이며, 벤투락투벡스를 먼저 2~3분간 마사지 하듯 발라주어 피부에 흡수시켜 준 뒤 더마틱스 울트라를 그 위에 발라주는 것이지만, 가격이 조금 부담스러우실 경우 어느 상처에 더 가까운지를 확인하신 뒤 하나만 발라주셔도 도움이 됩니다.
두 제품 모두 다 2개월 이상 장기적으로 사용하셔야 합니다.
새로 생긴 흉터는 자외선에 약하니 상처에 약품을 적용하신 뒤에는 옷이나 자외선 차단제 등으로 직사광선에 노출되지 않게 신경써주세요.