반응형

기타/프로그래밍 23

[Ubuntu]Failed to initialize NVML: Driver/library version mismatch 해결하기

개요 오늘은 Ubuntu안에서 Nvidia드라이버 문제를 해결하는 방법을 소개해본다. 문제상황 얼마전 연구실에서 서버에 문제가 생긴다는 문의가 들어왔다. 암것도 모르지만 서버 담당자가 된 나는 문제를 해결해야 했다. 여튼 문제 상황은 다음과 같았다. 어쨋든 문제상황은 다음과 같았다. root@user:~# nvidia-smi Failed to initialize NVML: Driver/library version mismatch nvidia-smi라는 명령어는 nvidia 장비들의 상태를 확인하는 용도인 것 같다. 연구실 가이드라인에는 위 명령어를 사용하여 그래픽 카드 유휴상태를 확인하여 머신러닝을 돌리라고 되어 있었다. 하지만 안되버린걸. 위의 메세지만 떳다면 해결방법은 여러가지가 있다. 우선 구글에 ..

[그래프 데이터베이스][무작정해보기] [12/30] WHERE 를 활용한 쿼리

SQL과 비슷하게 WHERE를 활용해서 원하는 노드를 Query할 수 있다. 기본 질의문 구성은 다음과 같다 MATCH (n) WHERE n.property = what_you_want RETURN n.other_property 위의 질의문은 오직 노드에 대한 결과값을 처리하게 된다. 노드의 어떤 속성이 WHERE안의 조건과 맞는 노드를 RETURN하는 방식이다. 그냥 노드를 RETURN하게 해도 되고, 원하는 Property만 꺼낼 수도 있다. 특정 범위에 맞는 데이터 Query하기 MATCH (p:Person)-[:ACTED_IN]->(m:Movie) WHERE m.released >= 2003 AND m.released (m:Movie) WHERE 2003 () WHERE p.name STARTS ..

[그래프 데이터베이스][무작정해보기] [11/30] Ubuntu에 Neo4j 설치하기

오늘부터 블로그 말투를 바꿔야 겠다. 네이버 블로그에서 쓰던 말투로 해야 좀더 자연스럽게 글이 써지는 것 같아 그렇게 해야겠다. 얼마전에 노트북에 Ubuntu를 설치했다. 윈도우에 용량 90%, 우분투에 10%정도 할애했다. 저번 글에도 쓴거 같지만, 우분투를 설치해야했던 이유는 여러가지가 있었다. 그 중에 중요한것은 Apach Spark를 설치해야 했기 때문이다. 왜 그리 중요하나면 내 개인적인 관심사이기도 했으며, 그래프데이터 베이스 교재에도 Spark 부분이 있었기 때문이다. 추후에 남는 컴퓨터를 얻는다면, 여러 컴퓨터에서 Spark를 돌리는 것을 해봐야 겠다. 그럼 본문으로. 개요 : Ubuntu에 Neo4j 설치하기 준비물 : Ubuntu 20.04, 인터넷, tab키 Openjdk 11 설치하..

[그래프 데이터베이스][무작정해보기] [10/30] Relation과 Property로 Query하기

연습2 : 속성값으로 쿼리값 필터링 하기. 영화 데이터를 계속 사용함. 관계(Relationships) 관계는 복잡하고 깊은 데이터를 연결하는데 있어 Neo4j 그래프를 강력한 도구로 만들어준다. 관계는 방향성(Directed)이 있는 연결로 두 노드 사이를 관계종류(Relationship type)로 연결한다. 노드와 같이 속성(properties)을 가진다. 노드를 찾을떄, 관계의 속성값을 이용할 수 있다. ASCII art 노드와 관계 사이에서 데이터를 얻어내기 위한 syntax () // 노드 ()--() // 어떤 관계를 가진 두 노드 ()-[]-() // 어떤 관계를 가진 두 노드 ()-->() // 첫번째 노드가 두번째 노드에게 관계를 가지고 있다. ()(node2) RETURN node1,..

[그래프 데이터베이스][무작정해보기] [9/30] 노드속성을 이용한 쿼리 및 필터

코멘트 만들기 //를 이용해서 코멘트 표시할 수 있음 그래프의 데이터 모델 확인하기 : CALL db.schema.visualization() 처음 공부할때, 그래프의 데이터 모델을 확인하는 것은 유용하다. `CALL db.schema.visualization()`를 이용하여 노드, 라벨, 관계에대한 정보를 얻을 수 있다. 다음은 기본 movie data에서 실행했을때 결과. person과 movie 두 노드를 볼 수 있으며, 각각은 다른 색상으로 표시되어 있음. 6가지 relation이 있으며, 사람과 사람 사이에는 follow 할 수 있기 때문에 재귀적인 모습으로 표시됨. 속성 노드를 정의하기 위해 속성값을 더 집어넣을 수 있음. 속성은 속성 키 값으로 정의됨. 같은 타입의 노드들이 꼭 같은 속성을 ..

[그래프 데이터베이스][무작정해보기] [8/30] 사이퍼 기초다지기 - 노드 / 관계 생성, 원하는 정보 Query하기

개요. 사이퍼 언어 기초적인 구조를 이해해보고, 이를 응용해 2촌 찾아 보기를 해보겠습니다. Cypher란 무엇인가? ※파파고의 도움을 받아 공식 사이트 문장을 번역하였습니다. 더보기 Cypher is a declarative graph query language that allows for expressive and efficient querying updating and administering of the graph. It is designed to be suitable for both developers and operations professionals. Cypher is designed to be simple, yet powerful; highly complicated database quer..

[그래프 데이터베이스][무작정해보기] [7/30] A*(A-star) Algorithm Neo4j에서 실행해보기

들어가기 전에 복습하기 2021/01/10 - [30일 프로젝트/Graph DB] - [그래프 데이터베이스][무작정해보기] [6/30] A*(A-star) Algorithm 그림으로 이해하기. [그래프 데이터베이스][무작정해보기] [6/30] A*(A-star) Algorithm 그림으로 이해하기. 다음 예제는 A*(A-Star) Algorithm 을 사용합니다. 그 전에 A* 알고리즘이 무엇인지 간단한 그림을 통해 이해해보도록 하겠습니다. A* 알고리즘은 무엇이고 어디에 쓰이는가? A*(pronounced "A-star") is a graph. dfso2222.tistory.com 바쁘다면 한줄요약 A* 알고리즘은 다음과 같은 f(n)값을 최소화하는 방식으로 작동합니다. $f(n) = g(n) + h(..

[그래프 데이터베이스][무작정해보기] [6/30] A*(A-star) Algorithm 그림으로 이해하기.

다음 예제는 A*(A-Star) Algorithm 을 사용합니다. 그 전에 A* 알고리즘이 무엇인지 간단한 그림을 통해 이해해보도록 하겠습니다. A* 알고리즘은 무엇이고 어디에 쓰이는가? A*(pronounced "A-star") is a graph traversal and path search algorithm, which is often used in many fields of computer science due to its completeness, optimality, and optimal efficiency. A*("에이 스타"로 발음됨) 는 그래프 순회와 경로 찾기를 위해 사용되는 알고리즘으로, 그 완결성, 적합성, 그리고 최적 효율 덕분에 컴퓨터 과학 분야에서 종종 사용된다1. 한마디로 경로..

[그래프 데이터베이스][무작정해보기] [5/30] Shortest Path Algorithm 사용해보기

지난 글에서 Dijkstra's Algorithm(다익스트라, 데이크스트라 알고리즘)에 대해 알아봤습니다. 오늘은 Neo4j에서 실행해보도록 하겠습니다. Unweighted 와 Weighted Shortest Path 이해하기. 최단거리 계산에는 크게 두가지 방법이 있습니다. 하나는 노드간 몇 회만 뛰어넘는지만 계산하는 방식, 다른 하나는 노드 사이의 실제 거리 값을 계산하는 방식이 있습니다. 우선 그림으로 둘의 차이를 간략히 설명하겠습니다. 앞으로 실행할 알고리즘은 위와 같습니다. 유럽의 여러 도시들과 그 사이의 거리를 표시한 것을 볼 수 있습니다. Neo4j 그래프에선 기본으로 화살표가 생겨 마치 한방향으로 가는것 같지만, 이는 프로그램 기본사항이므로 무시하도록 합시다. Unweighted Short..

[그래프 데이터베이스][무작정해보기] [4/30]Dijkstra's Algorithm(다익스트라, 데이크스트라 알고리즘)

최단거리 찾기(Shortest Path) 하나의 노드쌍에서 최단 거리를 찾습니다. 길찾기 알고리즘은 19세기 부터 유래를 찾을 수 있고, 1956년 Edsger Dijkstra(다익스트라, 데이크스트라)가 가장 유명한 알고리즘을 만들었으며, 대체루트 찾기로 유명해졌습니다. 이 알고리즘을 이해해 보도록 하겠습니다. 위의 움짤을 하나씩 그려가면서 이해해보도록 하겠습니다. 그래프의 구성 그래프의 기본 구성은 다음과 같습니다. 6개의 노드와 8개의 엣지로 이루어져 있습니다. 실생활에 대응해서 생각해본다면 6개의 도시와 이 도시들을 잇는 8개의 도로망이라고 생각해도 됩니다. 그리고 8개의 엣지 위의 값은 거리라고 생각합시다. 최단거리 = 최소 걸리는 루트 라는 공식을 성립하게 하기 위해, 도로체증, 신호 등등의 ..

반응형