전공/python12 PyTorch module forward() 와 특수 매소드 __call__() 비교 https://ysy2000.tistory.com/117에서 잠깐 특수 매소드에 대해 언급했다. 특수메소드는 built-in function이라고 보면 된다. 그 중에서 __call__ 메소드를 정의하면 f = Function() 형대로 함수의 인스턴스를 변수 f에 대입하고, 나중에 f(...) 형태로 __call__매소드를 호출할 수 있다. 그런데 https://github.com/clovaai/ClovaCall 의 코드를 리뷰하던 중 마치 __call__()을 호출하듯 forward()매소드를 호출하는 것을 볼 수 있었다. model = Seq2Seq(enc, dec) logit = model(feats, feat_lengths, scripts, teacher_forcing_ratio=0) 첫 문장에.. 2022. 7. 12. 리스트 내포 list comprehension xs = [x.data for x in inputs] 이런 형태의 코드를 본 적이 있을 것이다. 위 코드는 inputs 리스트의 각 원소 x에 대해 각각의 데이터 x.data를 꺼내고, 꺼낸 원소들로 구성된 새로운 리스트를 만든다. 이러한 형태를 list comprehension, 우리말로 리스트 내포라고 말한다. list compreshension은 python코드가 간결하게 표현되는 강력한 무기 중 하나로 코딩테스트의 모범 답안에서 자주 볼 수 있다. 다만 새로운 리스트가 다시 생성되므로 메모리 효용성에는 주의해야 할 것이다. 이 때 순서는 좀 중요한다. 반드시 아래 형태를 띄어야 한다. [ 조건 만족 시 출력값 if 조건 else 조건 불만족 시 출력 값 for i in data] 2022. 7. 8. python size function github에서 LAS를 구현한 코드를 보다가 아래 코드를 발견했다. seq_lengths = [s[0].size(1) for s in batch] size()함수는 tensor의 크기나 array의 크기를 알 수 있는 함수다. 그런데 size(1)이라고 1이라는 인자가 입력으로 들어가는 것을 볼 수 있다. 나는 이런걸 처음 봐서 한참을 헤매었는데, 공식문서는 아니지만 아래 페이지에서 답을 찾을 수 있었다. 바로 axis, 즉 축 번호를 나타낸다. 0을 넣으면 행 크기, 1을 넣으면 열 크기, 더 큰 수는 고차원의 축에 대해 크기를 반환해 준다. 참고: https://www.geeksforgeeks.org/numpy-size-function-python/ Numpy size() function | Pyt.. 2022. 6. 23. heap을 쓸 수 있는 상황이면 무조건 써라 heap에 대한 글: https://ysy2000.tistory.com/105?category=1010339 더보기 더 맵게 문제 설명 매운 것을 좋아하는 Leo는 모든 음식의 스코빌 지수를 K 이상으로 만들고 싶습니다. 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 Leo는 스코빌 지수가 가장 낮은 두 개의 음식을 아래와 같이 특별한 방법으로 섞어 새로운 음식을 만듭니다. 섞은 음식의 스코빌 지수 = 가장 맵지 않은 음식의 스코빌 지수 + (두 번째로 맵지 않은 음식의 스코빌 지수 * 2) Leo는 모든 음식의 스코빌 지수가 K 이상이 될 때까지 반복하여 섞습니다. Leo가 가진 음식의 스코빌 지수를 담은 배열 scoville과 원하는 스코빌 지수 K가 주어질 때, 모든 음식의 스코빌 지수를 K .. 2022. 6. 14. [Error 해결] KeyError: '4' 평소와 같이 코딩테스트를 하다가 아래와 같은 에러를 마주쳤다. KeyError:'4' dictionary1이라는 dictionary에서 key_one이라는 key값과 value값을 지우려면 두가지 방법이 있다. 1. del()사용하기 del(dictionary1['key_one']) 2. pop()사용하기 dictionary1.pop('key_one') pop을 사용하면 삭제와 동시에 삭제된 값을 반환한다. 이유는 잘 모르겠지만 해당 에러가 떴을 때는 pop부분을 del()함수로 바꿔주면 해결된다! 2022. 6. 10. 데이터 전처리 중 오류들 오늘은 새로운 서버에서 새로운 데이터로 코드를 돌리기로 했다. 어제부터 시작하여 데이터는 모두 준비 되었고 디렉토리를 알맞게 변경하고 코드를 돌렸다. 그런데 몇가지 문제 때문에 시간이 좀 걸렸다. 1. sudo 권한 데이터가 다른 디스크에 들어가 있어서 sudo 권한을 줬다. 2. 한글 인코딩 File "all_csv.py", line 29 SyntaxError: Non-ASCII character 'xeb' in file all_csv.py on line 29, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details 이런 오류가 떠서 검색해보니 한국어 오류라고 한다. # -*- coding: utf-8 -*- 을 문서.. 2022. 4. 23. 이전 1 2 다음 반응형