목록분류 전체보기 (584)
꿈 많은 사람의 이야기

이번 포스팅은 파이썬 케라스와 장고(python keras, python django)를 활용한 딥러닝 기반 욕설 탐지 시스템을 개인적으로 만들어본 후기입니다. 데이터 특성 상 욕설이 포함되어 있을 수 있습니다! 만약 읽게 되신다면 감안 부탁드립니다 ㅠㅠ 프로젝트를 어쩌다가 하게 되었나? 어느 날 한 프로게이머가 은퇴했습니다. 제가 정말 좋아하는 프로게이머였고 리그오브레전드(롤) 선수였습니다. 유튜브도 유명한 프로게이머입니다. 프레이, 프짱이라고 불리우는 선수였죠 사실 은퇴 전에 이번 시즌을 쉰다고 했을 때도 복귀할 것이라 생각했습니다. 하지만 자신감을 잃었다고 하고 은퇴를 선언했죠. 쉬는 기간에 챌린저도 가볍게 찍었던 그 였습니다. 왜 그런 그가 자신감이 없다고 했을까? 어느 댓글을 보니 이런 글이 있..

최대공약수, 최소공배수 구하는 것은 심심하면 나오는 과제입니다 처음 이 문제를 접했을 때는 최소공배수, 최대공약수가 뭐였는지도 기억이 안났던게 기억이 나네요 크흠.. 그래서 이번 글은 파이썬으로 최대공약수, 최소공배수를 구현해봅니다 먼저 최대공약수입니다 최대공약수는 소인수분해를 이용해서 구하는 방법도 있습니다. 뭐 예를 들어 60과 48이 있다고 가정하면 60 = 2^2 * 3 * 4 48 = 2^4 * 3 이니까 공통된 수 중 지수가 작은 것을 골라내면 2^2 * 3 = 12가 최대공약수가 됩니다. 근데 이 방법 말고 유클리드 호제법을 사용하면 더 쉽게 구현할 수 있습니다 유클리드 호제법은 위의 설명에도 나와있지만, 192와 72가 있으면 큰 숫자를 작은 숫자로 나누어 나머지를 구합니다. 192 % 7..

뭔가 이것저것 하다보니까 인스타 다이렉트 메세지(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 범위..