광주인공지능사관학교 2기 프로젝트 후기 | 파이썬 국비 지원 [프로젝트 기간] 2021/10/14 ~ 2021/11/30 중고급 과정을 마치고나면 1달 반의 프로젝트기간이 주어집니다. 프로젝트는 크게 기업 프로젝트, 개인 프로젝트로 나뉘어 하나를 선택하게 되고, 중간에 변경이 불가한데요. 기업 프로젝트는 이름에서도 느낄 수 있듯, 기업과 협업 개념의 프로젝트라고 보면 됩니다. 프로젝트 2주 전, 20여개의 기업이 간단한 회사 소개와 학생들이 프로젝트간 할 업무들을 알려줍니다. 이 정보를 토대로 학생들은 팀을 꾸리고, 원하는 회사에 지원을 하게 됩니다. 보통 회사당 2개 팀 지원을 받는데, 인기 있는 회사는 4개의 팀이 동시에 지원하기도 했습니다. 참고로, 기업 프로젝트에서는 내가 원하는 공부를 할 수 있는게 아니라, 기업이 내려주는 미션들을 함께 해나가야 하기에 .. 머신러닝,딥러닝/광주인공지능사관학교 2021. 11. 30. [파이썬 구현] Average Pooling(파이썬 문법으로 구현하기) 임의의 10개의 랜덤한 수를 생성하고 window size =3 을 기준으로 Average pooling 을 실시하는 코드를 구현해보도록 하겠습니다. 아래 그림은 윈도우 1칸씩 이동하는 그림을 순서대로 그려본것입니다. 1칸 이동할때 연산되는 숫자는 3개이며 이 3개의 숫자의 평균 구하는것이 Average Pooling 연산입니다. 연산을 하고 난 뒤에 새롭게 생긴 숫자의 배열 크기는 8이 됩니다. 머리로 연상이 되시지 않으면 아래 공식을 외우셔도 좋습니다! 전체열(10) - window size(3) +1 = 8 코드로 구현하며 자세히 알아보겠습니다. import random pool_size = 3 data = [random.randint(0,10) for _ in range(10)] # 10 data.. 머신러닝,딥러닝/파이썬, 넘파이 구현 2021. 7. 21. [matplotlib 기초] subplot2grid를 활용한 커스터마이징 matplotlib 에서는 figure를 그리는 다양한 방법이 있죠 이번 포스팅에서는 subplot2grid에 대해서 알아보도로 하겠습니다. subplot2grid를 왜 굳이 사용해야 하냐? 라고 물으신다면 .. 위와 같이 불규칙한 형태의 figure들을 그릴때 편리하기 때문입니다. 우선 가장 간단한 형태부터 알아봅시다! subplot2grid의 기본 형태 import matplotlib.pyplot as plt fig_set = plt.figure(facecolor='linen') ax1 = plt.subplot2grid((2,1), (0,0), fig= fig_set) # plt.sub~ 이고 fig = 에 넣어줌.. ax2 = plt.subplot2grid((2,1), (1,0), fig= fig_.. 머신러닝,딥러닝/matplotlib 시각화 2021. 7. 16. [파이썬 구현] one-hot encoding 구현(with 파이썬 문법) 모델을 돌리기 위해선 아래와 같은 문자로 된 데이터를 만나면, 숫자로 변경해줘야 합니다. 왜냐하면 기계는 글자를 모르기 때문이죠. 하지만 문자를 숫자로 바꾸면 또다른 문제가 발생하는데요. 0 ,1, 2 3 은 단순히 동물들을 구분하기 위한 숫자이지만 더 큰숫자가 모델에 더 큰 영향력을 끼치는 부작용이 발생하게 됩니다. 이러한 문제를 해결하기 위한 것이 one-hot encoding 인데요. 실제로 해당 되는 부분을 1로 표시하고 아닐 경우에는 모두 0으로 표시하는 형태입니다. 이번 포스팅에서는 오로지 파이썬 문법을 통해서 해당 코드를 구현 해보도록 하겠습니다. 파이썬 코드 구현 우선 위 그림과 같은 형태를 만들기 위해선 모두 0으로 채워 주는 작업을 해야합니다. labels 라는 리스트에 동물들을 우선 .. 머신러닝,딥러닝/파이썬, 넘파이 구현 2021. 7. 6. 광주인공지능사관학교 2기 공통 과정 후기 | 파이썬 국비 지원 2주간 진행되는 공통과정이 거의 마무리가 되어 가고 있습니다.. 공통과정은 파이썬 문법, 넘파이 , 판다스, matplotlib을 중심으로 진행이 되었는데요. 각 반의 담임 강사님이 진행을 해주십니다. 공통 pdf교재를 바탕으로 교육을 하나, 각 반 담임 강사님들의 스타일에 맞게 조금씩 다르게 커리큘럼이 진행되고 있는 것 같습니다. 공통과정의 난이도에 대해 말씀드리자면, 사실 광인사에 합격한분들이라면.. 기본적으로 파이썬 문법은 떼고(?) 왔으니.. 파이썬 문법 파트에서는 다소 루즈(?)할정도로 쉬운 난이도였다고 할 수 있을것같습니다. 하지만 넘파이부터 시작되는 라이브러리 교육부터 힘들어하는 분들도 계셨는데요. 아무래도 각 라이브러리들이 왜 필요한지에 대한 경험이 없는 분들은 낯선 개념들을 이해하기가 쉽.. 머신러닝,딥러닝/광주인공지능사관학교 2021. 6. 24. [넘파이 기초] 깊은 복사, 얕은 복사 | copy(), view() 이번 포스팅에서는 얕은복사 깊은 복사에 대해 알아보겠습니다. 우선 왜 이러한 복사를 사용하는지 부터 알아볼까요? a = [1, 2, 3, 4, 5] b = a b[0] = 100 print(a) output : 위 코드를 보면 알수 있듯이 int 자료형이 담긴 리스트 a를 b라는 변수값에 담았습니다. 이 말은 a, b 라는 꼬리표가 똑같은 메모리 공간을 사용하게 된다는 말입니다. 그렇기 때문에 우리가 바꾼 값은 b의 첫번째 값인데 최초 값인 a의 첫번째 값도 같이 바뀐 것을 알 수 있죠. 이런식의 작동방법은 메모리 효율성은 뛰어날 수 있으나, 원치않는 문제가 발생되기도 하죠. 이때 사용하는 것이 '복사' 입니다. 말그대로 값은 그대로 복사해서 쓰나 메모리는 따로 쓰겠다라는 말입니다. 복사에는 크게 두가지.. 머신러닝,딥러닝/넘파이,numpy 2021. 6. 23. 광주인공지능사관학교 2기 선발 test 후기 | 파이썬 국비 지원 우선 문제수는 인공지능 객/주관식 문제 32문제 , 프로그래밍 4문제로 36문항으로 구성 되었습니다. 작년 1기때와 비교하자면 주관식이 더 많아진것이 차이라면 차이라 할 수 있었습니다. 객/주관식 문제들은 대부분 1~3 점 정도의 배점으로 구성되었고 프로그래밍 4문제가 총 34점 배점이었습니다. 다시 말하면 프로그래밍 문제를 다 놓친다면 나머지 문제를 다맞춰도.. 66점인것이지요.. 주관적으로 제가 느낀 시험에 난이도에 대해서 말하자면, 객/주관식 문제들은 인공지능에 대해 넓은 개념 들을 물어보았습니다. 사실 pre과정에서 나왔던 퀴즈 문제들은 년도를 묻거나, 사람 이름을 묻는 등 지엽적인 문제들이 나와서, 선발 test에도 이와 같은 문제가 나오지 않을까 걱정을 하였는데요.. 다행히도(?) 그런 지엽적.. 머신러닝,딥러닝/광주인공지능사관학교 2021. 6. 5. [matplotlib 기초] spine | 축 커스터마이징 방법 안녕하세요 이번시간에는 축의 두께를 조절하고 위치를 조절 하는 등 여러가지 커스터마이징 하는 방법을 알아 보겠습니다. spines 축을 커스터마이징 하는데 사용되는 객체(object)를 spines라고하는데요! 이 녀석을 사용하기전 spines가 어떤 녀석인지 잠시 알아보죠!. import matplotlib.pyplot as plt fig, ax = plt.subplots(figsize= (10,10)) print(type(ax.spines)) print(ax.spines) # key와 value로 구성되어있음 우선 plt.subplots()를 통해 반환된 ax 객체의 property로 spines가 존재합니다. output : output을 확인해보면 spines 는 OrderDict 즉 딕셔너리형태.. 머신러닝,딥러닝/matplotlib 시각화 2021. 6. 1. [matplotlib 기초] grid(그리드) | 격자 사용법 오늘 이시간에는 그래프에서 표안에 그려지는 격자(그리드)를 그리는 법을 배워보겠습니다. 디폴트 형태의 그리드 import matplotlib.pyplot as plt fig, ax = plt.subplots(figsize=(7,7)) ax.grid() output : 그리드는 기본적으로 눈금(ticks)를 기준으로 그려지게 됩니다. 그리드를 좀더 촘촘하게 하려면 tick들을 더 세분화하면 되겠죠? (tick을 customizing하는법에 대해선 해당 포스트에서 자세히 설명 하였으니 참고바랍니다.) X축 | Y축 점선 그리기 import matplotlib.pyplot as plt fig, ax = plt.subplots(figsize=(7,7)) ax.grid(axis='x') output : grid .. 머신러닝,딥러닝/matplotlib 시각화 2021. 5. 26. [넘파이 기초] np.repeat , np.tile (배열 반복 | array 복사) 아직도 for문을 이용해서 열과 행을 복사하시나요? 오늘 이시간에는 넘파이를 통해 손쉽게 열과 행을 복사하는 api를 배워 보도록 하겠습니다. repeat repeat api의 파라미터로는 a, repeats, axis 3개가 있습니다. 이중 a는 우리가 복사할 값, repeats는 몇번을 반복할것인지, 마지막으로 axis 는 복사를 할때 어떤 방향으로 할지를 의미합니다. 코드를 통해 자세히 알아보죠! import numpy as np x = 3 rep = np.repeat(x, 2) print(f"x: {x}") print(f"np.repeat(x, 2): \n{rep}\n") output : 보시는것처럼 스칼라값 3 하나를 repeat을 통해 두번 반복시키니 3이 두개있는 배열이 완성된것을 확인할 수.. 머신러닝,딥러닝/넘파이,numpy 2021. 5. 25. [넘파이 기초] vstack | hstack | concatenate | dstack | stack 마스터 오늘은 array들을 합치는데 사용되는 다양한 api에 대해 알아보겠습니다. vstack vs hstack 1차원 벡터끼리의 결합 import numpy as np a = np.random.randint(0, 10, (4,)) # 1차 벡터 b = np.random.randint(0, 10, (4,)) # 1차 벡터 print(f"a: {a.shape}\n{a}") print(f"a: {b.shape}\n{b}\n") vstack = np.vstack([a, b]) hstack = np.hstack([a, b]) print(f"vstack: {vstack.shape}\n{vstack}") print(f"hstack: {hstack.shape}\n{hstack}\n") output : a, b는 각각 4개.. 머신러닝,딥러닝/넘파이,numpy 2021. 5. 13. [넘파이 기초] 차원 추가/축소/ 변경 완벽 정리 이번 포스팅에서는 ndarray의 size는 유지하면서 차원을 변경하는 법에 대해 알아보도록 할게요. reshape을 이용한 차원 확대 1. 1차원 --> 2차원 이전시간에 언급했듯이 reshape은 말그대로 shape을 바꿔주는 api입니다. 내가 확장하고 싶은 차원의 위치에 1를 넣어주면 되는데요. import numpy as np a = np.arange(9) b = a.reshape((1,9)) c = a.reshape((9,1)) print(f"a: {a.shape}\n {a}\n") print(f"b: {b.shape}\n {b}\n") print(f"c: {c.shape}\n {c}\n") output : b는 row 위치에 1를 위치 시킴으로써 (9,)를 1개 가진 형태의 행렬을 만들어줍니.. 머신러닝,딥러닝/파이썬, 넘파이 구현 2021. 5. 12. 이전 1 2 3 4 5 다음