이번 포스팅은 파이썬을 사용하면서 알게 된 with ~ as 문에 대해 이해하기 위해 정리한 글입니다. | python with - with은 파이썬에서 파일 처리를 하는데 제공하는 기능 중 하나입니다. 보통 프로그램에서 파일 처리를 한다고 하면 1. 파일을 연다 : open() 2. 파일을 처리한다 : read() or write() .. etc 3. 파일을 닫는다 : close() 이 세 가지의 방법을 기본으로 하여 처리를 합니다. 그런데 파일을 열고 처리를 했지만 오류가 생기거나 실수로 닫는 처리를 안 한다면 여러 가지 문제가 생길 것입니다.그래서 with은 실행했을 때 오류가 생겨도 해당 구문이 끝나면 close를 해주어 발생할 수 있는 문제를 예방할 수 있습니다. 그전에 python에서 file..
전체 글
이번 포스팅은 파이썬을 사용하면서 for ~ else문을 이해하기 위해 정리한 글입니다. for ~ else 문 - for 반복문이 정상적이게 끝났으면 else문을 실행하게 되는데 예시를 통해 자세하게 알아보겠습니다. 예시) 일반적인 for ~ else문 사용 for i in range(5): print(i, end = " ") else : print("else문 실행") >>> 0 1 2 3 4 else문 실행 - 위 코드를 보시면 반복을 마치고 else문이 실행되는 것을 볼 수 있습니다. 예시) for 반복문 안에서 break가 실행됐을 때 for i in range(5): if i > 3: print("break") break else : print("else문 실행") >>> break - for..
이번 포스팅은 파이썬의 내장 함수인 filter() 함수에 대한 내용을 정리했습니다. filter() 함수 - 파이썬의 내장 함수 filter() 함수는 iterable한 객체, 리스트와 같은 자료들을 필터링하는 역할을 하는데 여기서 필터링이란 특정 조건에 맞는 요소들만 출력한다는 의미입니다. filter() 함수 기본 형태 : filter(function, iterable) - function 인자는 조건을 정하는 함수이며, iterable은 list와 같은 순회 가능한 자료형입니다. - filter() 함수를 사용하게 되면 코드를 조금 더 간결하게 만들 수 있습니다. 예시) list에서 특정 크기 이하의 숫자만 출력하기 - filter() 함수를 사용하지 않고 구현 num_list = [10, 20,..
이번 포스팅은 파이썬을 사용하면서 알게 된 파이썬의 내장 함수 zip()에 관한 것을 정리한 내용입니다. zip() 함수 - 파이썬의 내장 함수 zip()은 iterable, 즉 순회 가능한 객체를 인자로 받고 각 자료형의 각각의 요소를 나눈 후 인덱스끼리 잘라서 리스트로 반환해줍니다. - 여기서 말하는 iterable 자료형은 파이썬에서 리스트, 튜플 같은 반복 가능한 자료형을 의미합니다. - python에서 zip() 함수는 zip(iterable) 형태로 사용합니다. - 먼저 타입부터 살펴보겠습니다. list1 = [1, 2, 3, 4] list2 = ['one', 'two', 'three', 'four'] print(type(zip(list1,list2))) 결과) - zip 타입으로 반환하는 것..
이번 포스팅은 PropertyGrid를 이용하여 Config 데이터들을 관리하고 내용을 INI 파일로 저장 및 읽기를 만든 것을 정리하였습니다. PropertyGrid란? - PropertyGrid는 지정해준 속성 값들을 보여주고 변경할 수 있게 하는 기능으로 설정 값들을 지정할 때 많이 사용합니다. PropertyGrid의 설정 값들을 INI로 저장하거나 INI에 있는 설정 값들을 PropertyGrid에 띄워보게 하려고 합니다. PropertyGrid 개념 - 먼저 PropertyGrid의 데이터들을 만들고 확인해보고 INI파일로 저장하려고 했습니다. 코드 1) 카테고리와 속성 만들기 [DefaultPropertyAttribute("Name")] public class ConfigParam { /* ..
C# 포스팅은 공부하면서 알아가는 것들을 정리하면서 썼습니다. Winform으로 하나씩 테스트하면서 정리한 것을 계속해서 포스팅할 예정입니다. 내용의 궁금한 점이나 잘못된 점이 있으면 댓글로 남겨주세요! GOAL - Winform의 Main Form에서 버튼을 눌렀을 때 해당 Form을 Main Form에 붙여서 띄우기 Form에 Form 붙이기 위한 작업 _ 1 - 테스트를 위한 버튼을 만들고 폼을 일반적으로 띄우는 형식입니다. - From.show()를 Btn_click 이벤트에 넣어서 사용했습니다. 하지만 이렇게 하면 다른 버튼을 누르는데 번거롭게 되며 창을 옮기는데도 불편함이 생깁니다. - 먼저 FormBorderStyle을 None으로 하여 상태 표시줄을 사라지게 했습니다. - ControlBo..
Batch Normalization (배치 정규화) - 신경망을 훈련할 때 일반적으로 어려운 한 가지는 가중치를 일정한 범위 내에서 유지해야 한다는 것입니다. 가중치가 커지기 시작하면 gradient exploding 문제가 발생하고 작아지면 gradient vanishing 문제가 발생합니다. - 신경망의 입력 데이터 스케일을 조정하는 이유 중 하나는 처음 시작되는 훈련을 안정적으로 시작하기 위함입니다. 처음 네트워크의 가중치가 랜덤 하게 초기화되어 학습되기 때문에 스케일 조정이 되지 않으면 큰 폭으로 출렁이게 됩니다. 그래서 앞서 CNN을 구현했을 때 입력 데이터의 0 ~ 255 사이의 픽셀 값 대신 0 ~ 1 사이의 스케일로 바꿨습니다. - 입력 데이터의 스케일을 조정했기 때문에 모든 layer의 ..
GOAL - ResNet의 구조를 이해 - Tensorflow를 이용하여 ResNet50으로 CIFAR10 데이터셋을 이용하여 분류해 보자 Residual Network - 오늘은 2015년 ILSVRC에서 우승을 차지한 Residual Network(이하 ResNet)에 대해 포스팅하려고 합니다. - ResNet은 마이크로소프트에서 개발한 알고리즘으로 원 논문명은 "Deep Residual Learning for Image Recognition"입니다. 어마어마한 논문의 인용 수를 볼 수 있으며 이는 딥러닝 이미지 분야에서 많이 사용되고 있다는 뜻입니다. - CNN이 이미지 인식 분야에서 뛰어난 성능을 보여주고 있었고, 네트워크의 layer를 깊이 쌓으며 성능 향상을 이루고 있었습니다. 하지만 실제로 ..