전체 글 428

데이터 증강

이미지 회전과 같은 무작위 변환을 적용하여 훈련 세트의 다양성을 증가시키는 기술인 데이터 증강의 예에 대해 정리하겠다. import matplotlib.pyplot as plt import numpy as np import tensorflow as tf import tensorflow_datasets as tfds from tensorflow.keras import layers from tensorflow.keras.datasets import mnist 데이터셋 다운로드 (train_ds,val_ds,test_ds),metadata=tfds.load('tf_flowers', split=['train[:80%]','train[80%:90%]','train[90%:]'], with_info=True, as..

tensorflow 2022.06.27

1. LeNet-5 논문 리뷰, 구현(tensorflow)

이번 포스팅은 Yann LeCun의 Gradient-Based Learning Applied to Document Recognition에 소개되어진 LeNet-5에 대해서 간단히 리뷰를 해보겠다. 먼저 이 논문이 밝히는 main message는 더 나은 패턴인식 시스템은 automatic learning에 더 의존하게 만들어져야 한다는 것이다. 전통적인 패턴인식 모델은 hand-designed된 feature-extractor가 input으로부터 적절한 정보를 수집하고 적절하지 않은 변동성을 제거했다. 그다음 trainable classifier가 결과로 나온 feature vector를 클래스들로 분류했다. 이는 특성 인식과 같은 작업에는 어느 정도 성공하면서 완전히 연결된 일반적인 피드포워드 네트워크..

백준 1541번 - split() 함수의 활용

https://www.acmicpc.net/problem/1541 1541번: 잃어버린 괄호 첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다 www.acmicpc.net split() 함수에 다음과 같이 문자열 인자를 주면 그 문자열을 기준으로 나눈 리스트를 반환한다. import sys print('10'.split('+')) print('10+20'.split('+')) 이 문제는 주어진 문자열을 ' '.join()함수로 먼저 한칸씩 띄어쓰기 문자열을 만든후 split()함수로 문자열을 리스트로 만든다. '12+34' -> ['1','2','+','3',..

알고리즘 2022.06.23

연속합 - 백준 1912번

https://www.acmicpc.net/problem/1912 1912번: 연속합 첫째 줄에 정수 n(1 ≤ n ≤ 100,000)이 주어지고 둘째 줄에는 n개의 정수로 이루어진 수열이 주어진다. 수는 -1,000보다 크거나 같고, 1,000보다 작거나 같은 정수이다. www.acmicpc.net dp문제인데 왼쪽부터 더해주면서 큰수가 나올경우 dp배열에 넣어준다. import sys N=int(sys.stdin.readline()) M=list(map(int,sys.stdin.readline().split())) dp=[0]*N dp[0]=M[0] for i in range(1,N): dp[i]=max(M[i],dp[i-1]+M[i]) print(max(dp)) 왼쪽부터 숫자 하나씩 비교하면서 만약..

알고리즘 2022.06.17

미로찾기 (BFS)- 백준 2178번

출처: https://www.acmicpc.net/problem/2178 2178번: 미로 탐색 첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다. 각각의 수들은 붙어서 입력으로 주어진다. www.acmicpc.net 위 문제는 기본적인 최단거리 찾기 문제이다. 나는 처음에 DFS로 접근해서 답이 나오지 않았다. 이 문제는 BFS로 풀어야 한다. import collections N,M=map(int,input().split()) q=collections.deque() q.append((0,0)) m=[] for _ in range(N): m.append(list(map(int,input()))) arr=[0]*M visited=[] ..