본문 바로가기

코딩

[TopCoder 알고리즘] 전체탐색 - 암호 Problem : Cryptography TopCoder Security Agency (TSA)는 새로운 암호화 시스템을 개발했다. 이 시스템은 암호화를 위해 숫자 리스트를 입력받는다. 당신은 TSA의 비밀 정보 수사원이다. 암호화 과정에서 중요한 부분을 구현하는 것이 당신의 임무이다. 당신은 입력 리스트에서 1개의 값을 선택하고 값을 1 증가시킨다. 이때 리스트 내부의 모든 숫자 곱이 가장 커져야 한다. int[] numbers 형태로 숫자 배열이 주어질 때 곱의 최댓값을 리턴하라. 리턴값이 2^62를 넘는 문제는 나오지 않는다. 제약 조건 : capacities : 2-50개의 요소라 있는 배열이며 각 요소의 값은 1-1000이다 리턴값 2^62를 넘지 않는다 예시 : numbers = {1 , 2 .. 더보기
[TopCoder 알고리즘] 전체탐색 - 즐거운 파티 시뮬레이션 문제에서 주어진 과정을 거쳐 나온 결과가 무엇인지 묻는다면, 전체 탐색 유형은 과정을 알려주지 않고 "가장 좋은 결과는 무엇인지" 등을 물어볼 수 있다. 선택 사항이 몇 개가 있고 어떤 것을 선택해야 할지 모르는 상황에서 전체 탐색은 모든 경우를 테스트하는 전략이다. Problem : Interesting Party 화이트씨는 다재다능한 사람이다. 그래서 그는 친구가 많다. 하지만 불행히도 그의 친구들은 누구도 다재다능하지 않다. 그들은 각자 두 개의 관심사만을 가지고 있고, 그 이외의 주제에 대해서는 대화하고 싶어 하지 않는다. 따라서 화이트 씨는 파티를 주최할 때, 모두에게 파티가 흥미롭기 위해서는 누구를 초대해야 하는지 고민이다. 화이트 씨는 파티 경험이 많지는 않지만, 친구들 모두가 공.. 더보기
[TopCoder 알고리즘] 시뮬레이션 - 키위주스 초기 상태와 어떤 작업을 수행할지를 제공하고, 그에 따라 최종 결과가 어떻게 될지 답하는 문제 유형 Problem : KiwiJuiceEasy 타로는 키위 주스를 준비했다. 타로는 0부터 N-1이라 이름을 붙인 N개의 병에 키위 주스를 넣었다. 이때 i번째 병의 용량은 capacities[i] 리터이며 타로가 i번째 병에 넣은 키위 주스의 양을 bottles[i] 리터라고 한다. 타로는 병에 키위주스를 재분배하려고 하며, 0부터 M-1까지 M회 조작한다. i번째의 조작은 타로가 병 fromId[i]부터 병 toId[i]에 키위주스를 넣는 것을 의미한다. 병 fromId[i]가 비어있거나 병 toId[i]가 꽉 차 있는 순간, 타로는 더 이상 키위주스를 넣지 않는다. N개의 요소를 가진 정수 배열 int[.. 더보기
[TensorFlow] Callback 사용하기 - 커스텀 콜백 / 모델 학습 / 평가 🙋‍♀️ Callback은 모델 학습 중 호출할 수 있는 기능을 의미한다. 🙋‍♀️ tf.keras.callbacks에는 함수가 구현되어 있으며, 직접 필요한 기능을 구현해 사용하는 것도 가능하다. Callback Classes 기본 Callback 관련 클래스 Callback 베이스 클래스로부터 새로운 콜백을 만들 수 있는 클래스 LamdaCallback 간단한 커스텀 콜백을 on-the-fly로 생성할 수 있는 콜백 CallbackList 콜백의 리스트를 추출할 수 있는 컨테이너 Logging 관련 클래스 BaseLogger 에포크별로 metric의 평균을 축적하는 콜백 CSVLogger 결과를 CSV 파일로 스트리밍하는 콜백 ProgbarLogger metric을 stdout으로 프린트하는 콜백 R.. 더보기
[TensorFlow] Vision Modeling(2) Transfer Learning 🙋‍♀️ tf.keras.applications 모듈에서 사전학습된 모델 불러와 fine-tuning하기 🙋‍♀️ Layer freezing / unfreezing 구현하기 TensorFlow에서 전이학습하기 From-scratch training vs Transfer Leraning ▶ From-scratch 학습 이전 글에서는 CNN 아키텍처를 만들어 TensorFlow에서 이미지 분류 모델을 학습하는 방법을 공부했다. 내가 디자인한 모델은 학습 데이터셋을 통해 weight를 조절하며 최종 태스크를 수행할 수 있는 representation을 학습하였다. 이렇게 모델의 파라미터를 랜덤하게 초기화하고, 데이터에 대해 모델을 학습시키는 것을 from-scratch 학습이라고 한다. ▶ Transfer L.. 더보기
[TensorFlow] Vision Modeling(1) MNIST 태스크 모델링하기 🙋‍♀️ TensorFlow Conv2D와 MaxPooling2D layer을 익히고, 모델을 만들어 학습하기 1. TensorFlow Conv2D TensorFlow Conv2D> https://www.tensorflow.org/api_docs/python/tf/keras/layers/Conv2D tf.keras.layers.Conv2D( filters, kernel_size, strides=(1, 1), padding='valid', data_format=None, dilation_rate=(1, 1), groups=1, activation=None, ... ) filters : 아웃풋 차원 수 kernel_size : 2d ConV 윈도우의 height & width 설정 strides : stri.. 더보기
[TensorFlow] 텐서플로우 2.0 기본 - Sequential & Functional API 🙋‍♀️ TensorFlow Sequential API와 Functional API를 사용해 모델 구조를 만들고 학습하기 0. Sequential vs Functional API Sequential API 레이어의 흐름이 순차적인 경우 사용 (layer-by-layer) 텐서가 이전 레이어에서 다음 레이어로 바로 이어질 때에 사용 가능 Functional API Sequential API보다 유연한 API로 다음의 기능을 사용할 수 있음 여러 개의 input을 받거나 여러 개의 output을 내야 하는 경우 Layer을 공유하는 경우 (샴 네트워크 등....) Residual Network 구현 1. 태스크 이해하기 : MNIST 데이터 분류 - 손으로 쓴 0-9 사이의 숫자 이미지를 인풋으로 받아 숫자.. 더보기
[2021 Hackathon] 2. Modeling 보호되어 있는 글입니다. 더보기