ROKO
HuggingFace datasets은 dict 형태가 아니다 [?] 본문
Artificial Intelligence/Deep Learning
HuggingFace datasets은 dict 형태가 아니다 [?]
RO_KO 2024. 11. 23. 19:17728x90
본론부터 얘기하자면 사실이다.
huggingface datasets 에서 데이터를 받아 구조를 살펴볼때 dict 자료구조처럼 구성이 되어있고 실제로도 dict 접근법이 적용가능하다. 최근 datasets의 데이터를 받아 데이터 증강을 해야하는 일이 있었다.
그런데 dict 자료구조 기준으로 코드를 구성할시 에러가 발생했다.
Error code
KeyError: 'exact_answer'
'exact_answer'는 내가 추가하고자하는 값의 key 이름이였고 해당하는 값이 존재하지 않는다는 에러이다.
why?
huggingface datasets은 dict이 아닌 arrow 라는 특수한 구조를 가진다.
https://huggingface.co/docs/datasets/en/about_arrow
Datasets 🤝 Arrow
huggingface.co
에러와 관련있는 고유한 특징중 하나는 immutable(불변) 하다는 점이다. dict처럼 새로운 key값과 value값을 넣어주는 것은 직접 자료구조를 변경하는 행위이다. 변경 값은 불변성으로 인해 반영되지 않고 나중에 다시 확인하게 되면 없는 값으로 간주되어 에러가 발생하게 되는 것이다.
Solution
map()을 사용하면 된다.
???: map()도 값을 변경하지 않나요?
맞다
하지만 map()은 기존 값을 수정하는것이 아닌 기존값을 받아 수정한 값으로 새로운 데이터를 생성한다.
직접 수정이 아니기 때문에 에러가 발생하지 않는다.
728x90
'Artificial Intelligence > Deep Learning' 카테고리의 다른 글
Tmux 란 무엇인가? (0) | 2024.12.05 |
---|---|
[CS234] Reinforcement Learning: Lecture 5 (0) | 2024.07.29 |
[CS234] Reinforcement Learning: Lecture 4 (0) | 2024.07.17 |
[CS234] Reinforcement Learning: Lecture 3 (0) | 2024.07.16 |
Comments