목차 1. OOP 객체: 속성(attribute)와 행동(action)을 가짐 속성은 변수(variable), 행동은 함수(method)로 표현 OOP는 이러한 객체 개념을 프로그램으로 표현 OOP는 설계도에 해당하는 클래스(class)와 실제 구현체인 인스턴스(instance)로 나눔 2. class class SoccerPlayer(object): def __init__(self, name, position, back_number): self.name = name self.position = position self.back_number = back_number # class 예약어 # class명(SoccerPlayer)은 camelcase naming rule을 사용함 ( 띄어쓰기 부분에 대문자 ..
Pythonic 파이썬 스타일의 코딩기법 파이썬 특유의 문법을 활용하여 효율적으로 코드를 표현하는 기법 그러나 더이상 파이썬 특유는 아님, 많은 언어들이 서로의 장점을 채용 남의 코드에대한 이해도를 높여줌 효율성이 조금 더 좋음 Pythonic Contents 목차 추후 업로드 1. split & join 2. list comprehension ex_1 ) result_1 = [i for i in range(10)] result_1 => [0,1,2,3,4,5,6,7,8,9] result_2 = [i for i in range(10) if i%2 == 0] result_2 => [0,2,4,8] ex_2 ) word_1 = ["a","b","c"] word_2 = ["d","e","f"] result =..
목차 Stack String Slicing String 내장함수 String 내부 따옴표 사용 String 다음줄 표현 Raw String 1. Stack LIFO 구조( Last In First Out ) append 함수로 리스트에 데이터를 입력 pop 함수로 리스트에 데이터를 꺼내옴 택배 화물차를 생각 a = [1,2,3,4,5] a.append(6) a.append(7) print(a) -> [1,2,3,4,5,6,7] c = a.pop() print(c) -> 7 print(a) -> [1,2,3,4,5,6] 2. Queue FIFO ( First In First Out ) 3. Tuple 튜플은 값의 변경이 불가능함 프로그램을 작동하는 동안 사용자의 실수에 의한 에러를 사전에 방지 t = (1..
목차 함수에서 parameter값 전달하는 방식 1. 함수에서 parameter값 전달하는 방식 Call by Value (값에 의한 호출) 함수에 인자를 넘길 때 값만 넘김 함수내에 인자 변경시 호출자에게 영향이 가지 않음 Call by Reference (참조에 의한 호출) 함수에 인자를 넘길 때 메모리 주소를 넘김 함수내에 인자값 변경시 호출자의 값도 변경됨 Call by Object Reference 또는 Call by assignment (객체 참조에 의한 호출) Python에서 사용하는 방식 객체의 주소가 함수로 전달 전달된 객체를 참조하여 변경 시 호출자에게 영향을 줌 하지만 전달받은 객체에 새롭게 값을 할당할 경우 호출자에게 영향을 주지 않음 def re(x): x.append(1) pri..
Precourse를 학습하면서 조금씩 정리를 시작해보기로했다. 목차 인코딩 String Slicing String 내장함수 String 내부 따옴표 사용 String 다음줄 표현 Raw String 인코딩 우리가 사용하는 문자열은 모두 2진수로 변환해서 저장하는데 변환하는 방법으로 UTF-8을 주로 사용한다. String 슬라이싱 a = "abcdefg" a[:] => "abcdefg" # 전체 지정 a[::2] => "aceg" # 두칸씩 이동해서 return a[::-1] => "gfedcba" 역순 return String 내장함수 a = "abcDefg" len(a) => 7 #a의 개수반환 a.upper() => "ABCDEFG" #a를 전부 대문자로 변환하여 반환 (a는 변하지않음) a.low..
오늘 오후 합격자 메일이 왔다. 공식 합격자 발표일은 다음 주 화요일이었지만, 어째서인지 4일 전인 금요일 저녁에 메일이 왔다. 부스트캠프 AI Tech 2기에 참석하려면 2개의 테스트를 통과해야 한다. 1차 테스트에서는 인공지능, 수학에 대한 기본적인 지식을 물어보는 문제와 기본적인 알고리즘 문제 5개가 주어졌다. 나는 인공지능, 수학 쪽에서는 2~3개와 알고리즘 2문제 정도를 틀린 것 같다. (정확한 점수는 알 수 없음) 2주 정도 후에 2차 테스트를 보는데 2차 테스트는 2시간 동안 총 8개의 알고리즘 문제가 주어졌다. 몇 점을 맞았는지는 알 수 없지만 시간 내에 5문제를 제출했다. 그리고 오늘 합격 메일이 왔다. 다른 분들 제출 개수를 들어보니 운 좋게 붙은 것 같다. 앞으로의 각오 8월 2일 시..
Transfer learning는 한글로 전이학습입니다. 많은 논문에 실린 모델들이 나오면서 사람들은 사용해보고 싶었지만, 바로 사용하기 힘들었습니다. 단어를 벡터로 옮기는 작업에 대해 필요한 시간적 비용과 자원이 굉장히 많이 필요했기 때문이였습니다. 이런 문제를 갖고 사람들은 Transfer learning을 사용하기 시작했습니다. Transfer learning은 대량의 텍스트로 언어모델을 한번 학습하게 됩니다. 이를 pre-trained 된 모델이라고 부르며, 사람들은 이 pre-trained된 모델을 갖고 자신이 원하는 방향으로 추가 학습을해서 문제를 해결합니다. 이를 fine-tuning 이라고 부릅니다. 이 부분은 NLP 뿐만 아니라 Image processing에도 쓰이고 다방면에서 사용되는..
우리가 사용하는 자연어를 컴퓨터가 알아듣게 하려면 word embedding이라는 작업이 필요합니다. word embedding에는 여러가지 시도가 있어왔고 2017년부터 Transformer라는 방법을 기반으로 하고있습니다. Transformer Transformer에 대해 간단하게 설명하겠습니다. 기존에 많이 사용되던 Word2Vec과의 차이점은 output으로 나오는 벡터값이 단어냐 문장이냐 입니다. Word2Vec은 단어에 대한 벡터값이 나오고 Transformer는 문장에 대한 벡터값이 나오게됩니다. 그렇기때문에 Transformer는 문장 맥락에 대한 이해가 가능합니다. 하지만 속도가 느리다는 단점이 존재합니다. 이미지 출처: https://wikidocs.net/31379 Transforme..