[lmdb] lmdb 파일 쓰기 및 읽기
·
Etc
lmdb는 embeded key-value 데이터베이스 엔진입니다. 그렇기 때문에 빠른 속도로 데이터 쓰기 및 읽기가 가능하고 메모리 사용량도 낮습니다. 이러한 장점 덕분에 대규모 데이터를 사용하는 딥러닝 학습에도 자주 쓰입니다.  - lmdb 파일 만들기   lmdb에 이미지 경로와 이미지 값을 저장하는 경우라고 생각해볼게요. 먼저 데이터베이스를 열어줍니다.import lmdbenv = lmdb.open('이미지폴더 경로', map_size=int(1e12)) 또한 key, value 모두 bytes 형식으로 저장하므로 encode함수를 사용합니다.  이미지도 bytes로 저장할거기 때문에 opencv나 PIL로 읽는 것이 아닌 open 함수로 읽어주었습니다.with env.begin(write=Tru..
[딥러닝 기본지식] Text-to-Image의 원리(Multi-Modal AI)
·
AI Research/Deep Learning
[ Multi-Modal(멀티모달)이란? ]과거에는 이미지를 입력으로 주면 결과물로 이미지만 나오고, 텍스트를 입력으로 주면 결과물로 텍스트만 내보내는 모델이 주를 이뤘는데요. 요즘에는 이미지를 입력으로 주면 이미지를 설명해주는 텍스트가 나오기도 하고, 텍스트로 설명을 주면 이미지를 만들어내는 모델에 대한 연구가 활발히 진행되고 있습니다.이렇게 단일 데이터만 사용하는 것이 아닌 여러 데이터를 한번에 사용하는 것을 "Multi-Modal(멀티모달)"이라고 합니다.   [ 하나의 모델이 Multi-Modal 데이터를 이해하는 방법 ]이미지를 다루는 신경망들은 대부분 CNN으로 이루어져있고, 텍스트를 다루는 대표적인 신경망에는 Transformer가 있습니다. 그럼 하나의 모델이 이미지도 이해하고 텍스트도 이..
Missing key(s) in state_dict: "clip_model.vision_tower.vision_model.embeddings.position_ids".
·
Error Note
- 전체 에러문구 Missing key(s) in state_dict: "clip_model.vision_tower.vision_model.embeddings.position_ids".  pretrain 모델을 load_state_dict를 사용하여 업로드 할 때 모델의 구조가 맞지 않아 발생하는 에러입니다.  - 해결방법 load_state_dic 함수의 파라미터로 strict=False 를 추가해주면 됩니다.model.load_state_dict(ckpt, strict=False) 이 파라미터를 추가해주면 모델을 불러올 떄 불러올 수 있는 값들만 유동적으로 불러올 수 있습니다.
TypeError: load_checkpoint_and_dispatch() got an unexpected keyword argument 'force_hooks'
·
Error Note
- 전체 에러 문구  TypeError: load_checkpoint_and_dispatch() got an unexpected keyword argument 'force_hooks' accelerate 의 버전이 낮아 생기는 문제입니다.현재 저의 버전은 0.21.0입니다.pip list | grep accelerate 로 확인 할 수 있습니다. accelerate==0.30.0  으로 업그레이드 해주면 해결됩니다.pip install accelerate==0.30.0