파이참에 텐서플로우(TensorFlow GPU)설치하는 법
·
python
* TensorFlow 설치에 앞서 해당 버전에 필요한 python, cuDNN, CUDA 설치가 필요합니다. 이 포스트는 여러 방법을 시행해보았지만 깔리지 않는 경우 시도하는 것을 추천합니다. https://www.tensorflow.org/install/source_windows#tested_build_configurations Windows의 소스에서 빌드 | TensorFlow Windows의 소스에서 빌드 소스에서 TensorFlow pip 패키지를 빌드하고 Windows에 설치합니다.참고: 잘 테스트되고 사전 빌드된 Windows 시스템용 TensorFlow 패키지가 이미 제공되고 있습니다.Windows용 설정 다 www.tensorflow.org GPU버전을 깔아주기 위해 해당 버전에 맞는 ..
*Tensorflow (기본적인 operations)
·
공부정리/모두를 위한 딥러닝 (강의 정리)
이 포스팅은 김성훈 교수님의 강의(모두를 위한 딥러닝)를 수강하며 공부한 내용을 정리한 것입니다. *해당 포스트는 텐서플로우 1.0.0 버전으로 작성된 소스코드입니다. 2.0.0 부터는 Session()이 사용되지 않음 *Tensorflow (기본적인 operations) import tensorflow as tf #ensorflow 를 import 하여 tf라는 이름으로 사용하기로 했다. hello = tf.constant("Hello, TensorFlow!") '''tf.constant라는 함수를 호출하여 "Hello, TensorFlow!"라는 문자열을 hello라는 변수에 저장하는 것이다. ''' sess = tf.Session() #Computational Graph를 실행하기 위해서는 Sess..
2-1. Linear Regression(선형회귀)
·
공부정리/모두를 위한 딥러닝 (강의 정리)
이 포스팅은 김성훈 교수님의 강의(모두를 위한 딥러닝)를 수강하며 공부한 내용을 정리한 것입니다. 섹션2. Linear Regression(선형회귀)의 개념 Predicting exam score: regression 어떠한 학생이 공부한 시간 만큼 어떠한 성적(0~100)이 나온다는 데이터로 Supervised learning을 시킨다고 하자. Regression이란 모델이 Training data를 가지고 Regression model이 학습을 하게 되었을 때, 7시간 공부한 학생에 대한 점수를 요청하면, 그에 대한 y값을 준다는 맥락이다. 예시를 정형화하여 설명해보자. (Linear) Hypothesis regression 모델을 학습한다는 것은 가설을 세울 필요가 있다. 어떤 Linear한 Mod..
1. Machine Learning Basics
·
공부정리/모두를 위한 딥러닝 (강의 정리)
이 포스팅은 김성훈 교수님의 강의(모두를 위한 딥러닝)를 수강하며 공부한 내용을 정리한 것입니다. 섹션1. 머신러닝의 개념과 용어 Machine Learning (기계 학습)이란 무엇인가? 통계적인 경험을 통해 문제의 해법을 찾아가는 인간의 특징을 기계에 적용한 것이 머신러닝(machine learning)이라고 할 수 있다. 기계가 일일이 코드로 명시하지 않은 동작을 데이터로부터 학습하여 실행할 수 있도록 하는 알고리즘을 개발하는 연구 분야이다. Deep Learning 이란 무엇인가? 딥러닝(deep learning)은 더욱 고도화된 머신러닝 방법으로 사진과 같은 고차원 데이터에서 기계 스스로 패턴을 알아낼 수 있다는 장점이 있다. 예를 들면, 개와 고양이를 분류할 때 기존 머신러닝은 일반적으로 귀,..
[알고리즘] 그래프 탐색 알고리즘 : DFS & BFS / Python 파이썬
·
python/자료구조 & 알고리즘
그래프 탐색 알고리즘 DFS & BFS 탐욕(Search)이란 많은 양의 데이터 중에서 원하는 데이터를 찾는 과정이다. 대표적인 그래프 탐색 알고리즘으로는 DFS와 BFS가 있다. * 코딩테스트에서 자주 등장하는 유형 이번 포스트에서는 DFS, BFS에 대해 살펴볼 예정이다. DFS (Depth-First Search) DFS는 깊이 우선 탐색이라고도 부르며, 그래프의 깊은 부분을 우선적으로 탐색하는 알고리즘이다 DFS는 스택 자료구조(또는 재귀 함수)를 이용한다 탐색 시작 노드를 스택에 삽입하고 방문 처리를 한다 스택의 최상단 노드에 방문하지 않은 인접한 노드가 하나라도 있으면 그 노드를 스택에 넣고 방문처리한다. 방문하지 않은 인접 노드가 없으면 스택에서 최상단 노드를 꺼낸다 더 이상 2번의 과정을 ..
[알고리즘] 그리디 & 구현 / Python 파이썬
·
python/자료구조 & 알고리즘
그리디 알고리즘이란 그리디 알고리즘(탐욕법)은 현재 상황에서 지금 당장 좋은 것만 고르는 방법을 의미합니다. 일반적인 그리디 알고리즘은 문제를 풀기 위한 최소한의 아이디어를 떠올릴 수 있는 능력을 요구합니다. 그리디 해법은 그 정당성 분석이 중요합니다. 단순히 가장 좋아보이는 것을 반복적으로 선택해도 최적의 해를 구할 수 있는지 검토합니다. [문제 상황] 루트 노드부터 시작하여 거쳐 가는 노드 값의 합을 최대로 만들고 싶음 Q. 최적의 해는 무엇인가? 일반적인 상황에서 그리디 알고리즘은 최적의 해를 보장할 수 없을 때가 많음 하지만 코딩 테스트에서 대부분의 그리디 문제는 탐욕법으로 얻은 해가 최적의 해가 되는 상황에서 이를 추론할 수 있어야 풀리도록 출제됨 탐욕 알고리즘 문제를 해결하는 방법 선택 절차(..
문제 / 격자판 최대합 / Python
·
coding test - python/기본기 문제
문제 제목: 격자판 최대합 나의 풀이 (80점) n = int(input()) d = list(list(map(int, input().split())) for _ in range(n)) sum_list = [] # 각 행열,대각선의 합을 저장하는 리스트 cross1_list = [] #대각선을 저장하는 리스트 cross2_list = [] #반대 대각선을 저장하는 리스트 for i in range(n): sum_list.append(sum(d[i][:n])) #각 행들의 합 sum_list.append(sum(d[:n][i])) #각 열들의 합 cross1_list.append(d[i][i]) #대각선의 수 cross2_list.append(d[i][n-i-1]) #반대대각선의 수 sum_list.app..
[라이브러리] itertools / Python
·
python/라이브러리
itertools 란 효율적인 루핑을 위한 이터레이터를 만드는 함수이다. itertools에는 아래와 같은 조합형 이터레이터가 있다. combinations() combinations_with_replacement() product() permutations() combinations(iterable, r) : iterable에서 원소 개수가 r개인 조합 뽑기 from itertools import combinations l = [1,2,3] for i in combinations(l,2): print(i) ''' 출력 결과: (1, 2) (1, 3) (2, 3) ''' combinations_with_replacement(iterable,r) : iterable에서 원소 개수가 r개인 중복 조합 뽑기 ..
Programmers / 소수 만들기 / Python
·
coding test - python/Programmers
*문제 출처는 프로그래머스에 있습니다. 문제 제목: 소수 만들기 문제 사이트: https://programmers.co.kr/learn/courses/30/lessons/12977 나의 풀이 def solution(nums): a = [] cnt = 0 for i in range(0, len(nums) - 2): # 리스트의 숫자 세개를 고름(조합) for j in range(i + 1, len(nums) - 1): for x in range(j + 1, len(nums)): a.append(nums[i] + nums[j] + nums[x]) #약수 판별 isPrime = True for x in a: for i in range(2,x//2+1): if x % i == 0: isPrime = False ..
문제 / *수들의 합/ Python
·
coding test - python/기본기 문제
문제 제목: 수들의 합 N개의 수로 된 수열 A[1], A[2], …, A[N] 이 있다. 이 수열의 i번째 수부터 j번째 수까지의 합 A[i]+A[i+1]+…+A[j-1]+A[j]가 M이 되는 경우의 수를 구하는 프로그램을 작성하시오. ▣ 입력설명 첫째 줄에 N(1≤N≤10,000), M(1≤M≤300,000,000)이 주어진다. 다음 줄에는 A[1], A[2], …, A[N]이 공백으로 분리되어 주어진다. 각각의 A[x]는 30,000을 넘지 않는 자연수이다. ▣ 출력설명 첫째 줄에 경우의 수를 출력한다. ▣ 입력예제 8 3 1 2 1 3 1 1 1 2 ▣ 출력예제 5 나의 풀이 n,m = map(int,input().split()) A = list(map(int,input().split())) cn..
문제 / 카드 역배치 / Python
·
coding test - python/기본기 문제
문제 제목: 카드 역배치 * 값 스왑 a,b = b,a 를 하면 a와 b의 값이 스왑(바뀐다)된다. *for _ in range() for _ in range(10) 언더바 _는 변수가 없이 그냥 반복만함 **카드 배치에 있어서 s부터e까지의 리스트를 선택한 뒤 해당 인덱스들의 값들을 바꾸기 위해선 횟수를 (e-s+1)//2 까지 수행하면 된다. 회문문자열과 조금은 다르지만 진짜 조금 비슷한 유형인거같다. 모범답안 a=list(range(21)) for _ in range(10): s, e=map(int, input().split()) for i in range((e-s+1)//2): a[s+i], a[e-i]=a[e-i], a[s+i] a.pop(0) for x in a: print(x, end=' '..
문제 / 두 리스트 합치기 / Python
·
coding test - python/기본기 문제
문제 제목: 두 리스트 합치기 오름차순으로 정렬이 된 두 리스트가 주어지면 두 리스트를 오름차순으로 합쳐 출력하는 프로 그램을 작성하세요. ▣ 입력설명 첫 번째 줄에 첫 번째 리스트의 크기 N(1