전체 글
-
ROUGE머신러닝 및 딥러닝 2021. 7. 16. 21:40
ROUGE가 요약 모델의 성능을 평가 하는 방법 Recall-Oriented Understudy for Gisting Evaluation 의 준말 텍스트 요약, 기계번역 등 자연어 생성 모델의 성능 평가 지표 시스템 요약(모델 생성 요약): the cat was found under the bed 참조 요약(Gold standard, 대개 사람이 직접 만든 요약): the cat was under the bad 만약 모델의 성능 평가를 위해 개별 단어 에만 집중한다면 모델이 생헝한 시스템요약과 사람이 만들어 놓은 참조 요약 간 겹치는 단어는 단 6개 뿐이다. 그러나 이 6이라는 숫자는 성능 지표(metric)로 바로 사용하기에 적합하지 않은 수이다. 따라서 정략적 지표로 사용할 수 있는 값을 얻기 위해 ..
-
NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running. 해결etc 2021. 7. 15. 17:39
GCP나 AWS에선 nvidia-driver를 초기 설정부터 다운받은 상태로 인스턴스를 생성할 수도 있지만 그렇게 하지 않을 수 도 있다. 그럴경우 ubuntu 에선 아래와 같은 명령어를 치면 문제가 해결된다. sudo apt-get update sudo apt-get install --no-install-recommends nvidia-384 libcuda1-384 nvidia-opencl-icd-384 sudo reboot Unable to install cuda (11.3) inside Ubuntu docker environment sudo apt-get -o Dpkg::Options::="--force-overwrite" install --fix-broken 도
-
Spring Annotation 정리Spring 2021. 5. 4. 22:07
왜 저는 스프링에서 어노테이션들을 볼떄마다 처음보는거 같을까요? 이번기회에 다 정리하려고 합니다. 이 상태로는 정말 안되겠어요 ㅠㅠ @Component Component-scan을 선언에 의해 특정 패키지 안의 클래스들을 스캔하고 해당 어노테이션이 있는 클래스에 대해서 bean을 생성합니다. @Qualifier 같은 타입의 빈이 두 개 이상이 존재하는 경우에 스프링이 어떤 빈을 주입해야 할 지 알 수 없어서 스프링 컨테이너를 초기화하는 과정에서 예외를 발생시킨다. 이 경우 @Qualifier과 @Autowired를 함께 사용하여 정확히 어떤 bean을 사용할지 지정하여 특정 의존 객체를 주입할 수 있도록 한다. @Inject @Autowired와 동일한 기능을 수행하지만 이는 JSR 표준이다. 따라서 S..
-
트리순회자료구조 2021. 2. 15. 12:13
## 트리순회 - 트리순회란 그래프 순회의 한 형태로 트리 자료구조에서 각 노드를 정확히 한번 방문하는 과정을 말한다. 그래프 순회와 마찬가지로 트리 순회 또한 DFS 또는 BFS로 탐색하는데 특히 이진 트리에서 DFS는 노드의 방문 순서에 따라 다음과 같이 크게 3가지 방식으로 구분된다. 1. 전위 순회(NLR) 2. 중위 순회(LNR) 3. 후위 순회(LRN) 순회 방식의 영문 두문자어를 구성하는 L, R, N 중 L은 현재 노드의 왼쪽 서브트리 R은 현재 노드의 오른쪽 서브트리, N은 현재 노드 자신을 의미한다. 즉 전위 순회는 NLR이므로 현재 노드를 먼저 순회한 다음 왼쪽과 오른쪽 서브트리를 순회하고, 중위 순회는 LNR이므로 왼쪽 서브트리를 순회한 다음 현재 노드 마지막으로 오른쪽 노드, 후회..
-
MYSQL GROUP BYDataBase 2021. 2. 11. 14:05
MYSQL 에서 구문 처리 순서는 FROM -> WHERE -> SELECT -> GROUP BY -> HAVING -> ORDER BY -> LIMIT 순으로이루어 져 있다. GROUP BY 의 위치는 무조건 FROM, WHERE 뒤에 위치해야 한다. 또한 위의 그림에서 부터 알 수 있듯이 WHERE 조건절이 연산된 후에 GROUP BY가 나오므로 GROUP BY의 조건절은 HAVING에 넣어주어야 한다. 예시를 들며 설명해 보겠다. 위와 같이 orders의 테이블안에 필드값이 위처럼 있다고 할 때 status의 값들을 가지고 subgroup을 만들어 보고 싶으면 ```sql select status from orders group by status; ``` 를 하면 된다. 그러면 위와 같은 결과가 나..
-
이진 탐색 트리알고리즘 2021. 2. 10. 00:30
이진 트리는 정렬 여부와 관계없이 모든 노드가 둘 이하의 자식을 갖는 단순한 트리 형태를 말했다. 그렇다면 이진 탐색 트리(BST) 란 무엇일까? 이진 탐색트리란 정렬된 트리를 말하는데, 노드의 왼쪽 서브트리에는 그 노드의 값보다 작은 값들을 지닌 노드들로 이뤄져있는 반면, 노드의 오른쪽 서브트리에는 그 노드의 값과 같거나 큰 값들을 지닌 노드들로 이루어 있는 트리를 뜻한다. 이렇게 왼쪽과 오른쪽의 값들이각각 값의 크기에 따라 정렬되어 있는 트리를 이진탐색트리라 한다. 이 트리의 가장 훌륭한 점은 탐색시 시간 복잡도가 O(log n)이라는 것이다. 이진탐색트리를 이용해 숫자 8을 찾는 과정을 확인해보자. 이 그림에서 루트는 15이며 8은 15보다 작다. 따라서 왼쪽 자식 노드를 탐색한다. 10 또한 8보..
-
python sorted알고리즘 2021. 2. 5. 15:48
파이썬에서 기본적으로 sort는 timsort를 사용한다. 오늘 해볼 포스팅은 파이썬에서 정렬 할 때 이런 생각이 많이 든다. "사람의 이름을 나이순으로 정렬해라. 근데 나이가 같으면 키 순으로 정렬해라" 이렇게 물을 때 어떻게 해야 하는지 포스팅 하려고 한다. 원래 기본적으로 파이썬에서는 리스트에서 sorting을 할 때 some_list = [1,2,3,4,5] some_list.sort() # 결과값 [1,2,3,4,5] 이렇게 sort는 기본적으로 오름차순으로 정렬된다. 물론 내림차순으로 정렬할 수 도 있다. 그럴땐 some_list.sort(reverse=True) # 결과값 [5,4,3,2,1] 가 나온다. 여튼 이제 내가 하려고 하는 사람의 이름을 나이순으로 정렬해라. 근데 나이가 같으면 키..