목록2019/04 (14)
꿈 많은 사람의 이야기
뭔가 이것저것 하다보니까 인스타 다이렉트 메세지(DM)를 가끔 사용하게 된다 디엠이라고 많이 부르는데 이거를 핸드폰으로 사용하면 메세지 창이 보인다 하지만 pc에서 그냥 일반 인스타를 접속하니까 그게 보이지가 않았다. 방법이 없을까? 했다. 왜냐면 뭐 짧은 글이면 상관없는데 긴 글을 보내려고 하면 핸드폰으로 치기 너무 힘들고 오래걸린다 ㅠㅠ 그래서 인스타를 pc에서 사용하면서 DM을 보낼 수 있는 방법을 찾아보았다. 본인은 윈도우10 환경에서 pc 인스타를 설치한다 https://www.microsoft.com/en-us/store/apps/windows?icid=CNavAppsWindowsApps Windows Apps - Microsoft Store Download Windows apps for yo..
파이썬 알고리즘 기본을 계속 하고 있다. 지난 번에 공부 했던 힙 정렬, 삽입 정렬, 선택 정렬, 버블 정렬 등도 계속 복습도 해야하는데.. 주말에 해야하는데 참 쉽지 않다. 아무튼 이번 포스팅은 정말 기본적인 알고리즘이다. 숫자 뒤집는 방법(거꾸로 출력하는 방법), 소수 값 출력하는 방법과 배수 출력하는 방법이다. 너무 간단한다 먼저 배수이다 만약 3의 배수를 구하고 싶으면 어떤 값을 3으로 나누었을 때 0으로 떨어지면 그 값은 3의 배수이다 3과 5의 배수를 동시에 구하고 싶으면 n % 3 == 0 and n % 5 == 0 의 조건이 성립되면 된다 이 조건을 가지고 코드를 작성하면 된다. 아래와 같다. 숫자를 거꾸로 출력하는 방법(혹은 문자열을 거꾸로 출력)은 reverse 방법을 이용하는 방법이나..
이번 포스팅은 힙 정렬(heap sort)에 대해서 공부를 합니다. 먼저 힙(heap)에 대해서 알아야겠죠. 힙은 크기(우선 순위)을 중심으로 정렬된 시퀀스를 활용할 때 유용한 자료구조입니다. 힙은 한 노드가 최대 두 개의 자식노드를 가지면서 마지막 레벨을 제외한 모든 레벨에서 완전 이진트리(complete binary tree)를 기본으로 구조를 가지고 있습니다. 바로 위 사진처럼 되어 있는 구조가 힙 구조입니다. 잘 보면 이진 탐색 트리(binary search tree)와 구조가 살짝 차이가 있는데요 각 노드의 값은 자신의 자식노드보다 크거나 같습니다. 이게 이진 탐색 트리와는 차이점이죠. 이진 탐색 트리에서는 자식의 노드가 부모의 노드보다 값이 클 수도 있습니다. 하지만 힙에서는 그렇지 않습니다...
가끔씩 keras를 사용하다보면 gpu가 제대로 돌아가고 있는지 알고 싶을 때가 있다. 아니 소리는 요란하게 크게 들리는데 막상 돌아가는 것 보면 흠.. 별것 없는 데이터인데 정말 오래걸리고.. 뭔가 gpu가 사용되지 않는 것 같은 기분이 든다 그럴 땐 gpu가 동작이 되는지 확인해야합니다. 커맨드 + r 을 누르시면 위와 같은 화면이 나옵니다. 여기서 dxidag를 입력하면 directx 창이 뜨는데요 먼저 그래픽카드가 인식이 되는지부터 확인하면 됩니다 저는 그래픽 카드가 잘 인식되네요~ 그리고 저는 주로 케라스를 이용합니다. 케라스에서 gpu를 확인을 하려면 from keras import backend as K 를 이용합니다 K.tensorflow_backend._get_available_gpus(..
매번 centos 환경에 python3.x을 설치할 때 구글링을 해서 봤는데 이번 기회에 확 정리를 해버립니다 이 환경은 centos7 환경이구요. python3.x 버전을 설치합니다. 파이썬 설치해보기 갑시다 먼저 repository를 추가해야합니다. yum install -y https://centos7.iuscommunity.org/ius-release.rpm 를 입력합니다. 그러면 뭔가 쭉쭉 실행됩니다~ 위 사진처럼요~ 그리고 이제 필요한 라이브러리를 설치합니다 저는 python3.6을 주로 사용합니다. 그래서 파이썬 3.6 버전을 기준으로 설치합니다. yum -y install python36u python36u-libs python36u-devel python36u-pip 를 입력하면 됩니다...
요즘 노션이 정말 핫하다 notion이라는 이것은 문서 작업과 노트 작업, task 작업 등 다양한 것을 할 수 있는 애플리케이션입니다. 많은 사람들이 에버노트(evernote)를 많이 사용했지만 노션이 나온 지금 엄청난 속도로 notion에 합류하고 있습니다. 도대체 이 노션이 뭐길래? 저도 지금 페이스북에서 DPER 이라는 과정과 제 본인 스케줄, 하루 일정 정리, 일기 등을 다 이 노션으로 처리하고 있습니다. 이게 지금 제 노션입니다. https://www.notion.so/lsjsj92/DPER-6a11906183f447bc93470e1c2f381613 불러오는 중입니다... 이렇게 들어올 수 있는데요! 이렇게 workspace를 두어서 본인의 주제에 따른 혹은 팀의 주제에 따라서 작업장을 둘수 ..
이번 포스팅은 합병정렬(Merge sort)에 대해서 정리합니다. 병합정렬이라고도 불리우는 이 정렬은 데이터를 잘게 쪼개고(divide) 크기를 비교해 정렬합니다(conquer) 그리고 이를 합칩니다(merge) 이를 더 이상 합칠 array가 없을 때까지 반복합니다. 위 그림을 보시면 쉽게 나와있습니다. 칸아카데미 페이지에 나와있는 설명인데요. 위에선 2개씩 잘개 쪼갭니다. 쪼갠 뒤 정렬을 하면서 합쳐줍니다. 그러면 최종적으로 정렬된 데이터가 나오게 되겠죠! 그럼 코드로는 어떻게 될까요? 파이썬을 활용해서 코드를 작성해봅니다. 풀 코드를 보기 전에 merge_sort가 어떻게 보이는지 봅니다. list가 1보다 작거나 같으면 return하고 그게 아니면 mid 값을 // 2로 해서 절반을 기준으로 합니..
이번 포스팅은 파이썬으로 자료구조, 알고리즘 공부하기 쉘 정렬(shell sort)과 버블 정렬(bubble sort)에 대해서 정리합니다. 여러가지 정렬 알고리즘이 있습니다. 지난 포스팅에선 삽입 정렬, 선택 정렬에 대해서 보았는데요 기본적인 정렬 중 버블 정렬이라는 것이 있습니다! 버블 정렬은 말 그대로 거품처럼 뽀글뽀글 올라가며 정렬을 하는데요 예시를 들면 이렇게 진행됩니다. 처음부터 하나씩 비교를 하면서 큰 것을 뒤쪽으로 몰아넣죠. 그리고 fix 시킵니다. 그리고 그 다음 루틴에서 또 돌고.. 이렇게 진행합니다. 바로 파이썬 코드로 봅시다 핵심은 def bubble_sort입니다. 정렬되지 않은 list를 입력 받습니다. 2개의 for문을 돌면서 진행합니다. 맨 처음 for문은 len - 1 범위..
파이썬으로 알고리즘, 자료구조 공부하기! 이번에는 삽입 정렬, 선택 정렬이다 정렬 알고리즘에서 많이 나오는 것들이 버블 정렬, 삽입 정렬, 선택 정렬 등이 있는데 당분간 이 정렬에 대해서 공부하고 정리하려고 한다! 먼저 선택 정렬(selection sort)이다 선택 정렬은 위 그림을 보면 이해가 편하다 매 step으로 나뉘어 진행하는데 첫 번째에 스탭을 돌면 가장 작은 값이 맨 처음으로 온다. 그리고 첫 번째 값을 fixed 시켜놓고 2번째 값 부터 시작하고 또 다시 비교한다. 그렇기 때문에 비교는 N * (N-1)만큼 비교를 하게 된다. 하지만 교환 횟수는 N - 1 정도이다 파이썬으로 코드를 구현해보자 이렇게 간단한 하나의 함수로 만들 수 있다. 2개의 for문을 돈다. N * (N -1)이므로 그..
지난 포스팅까지 파이썬으로 연결 리스트(linked list)와 스택(stack), 큐(queue)를 공부했다. 이번에는 트리 구조이다 트리는 정말 많이 쓰인다. 일단 리눅스 구조만 봐도 트리구조이다. 간단하게는 족보라고 생각하면 좋다 맨 위에 최초 조상님이 계실거고 그 밑에 자녀들 등등 해서 족보가 그려진다. 이런 구조가 트리구조라고 할 수 있다. 트리도 뭐 이진 트리냐, 완전 이진트리냐 등등이 있다. 보통 이진트리가 많이 사용된다. 트리에는 root와 부모 노드(parent node), 자식 노드(child node)가 있다. 위의 구조에서 root는 A이고 A의 자식은 B, C이다. 그리고 B,C의 부모는 A이다. 이런 식으로 부모, 자식 노드를 구분할 수 있다. 형제 노드(sibling node)..