본문 바로가기

728x90
반응형

~2023

(160)
[CV] 데이터를 학습 데이터와 검증 데이터로 분류하기 - train, validation test 데이터셋으로 자주 활용해 정확도를 올리다보면 범용성 있는 모델이 만들어지지 않는다. 그래서 여러가지 이유가 있지만 위와 같은 이유로 검증 데이터(validation datas)를 만들어 학습 과정에서 제대로 학습이 됐는지 확인한다. 우리는 sklearn 라이브러리에 있는 train_test_split() 메소드를 이용해 학습 데이터에서 검증 데이터를 분리하겠다. from sklearn.model_selection import train_test_split train_test_split()을 import 하기 위해 다음과 같이 선언해준다. 그런 다음에 학습 데이터에서 분리를 해야 하는데 학습 데이터를 만드는 방법을 모르겠다면 링크에서 csv에 있는 데이터를 로드할 수 있다. 어쨋든 학습 데이터가 ..
[CSV] csv에 담겨 있는 정보로 이미지 파일을 이미지 데이터로 load하기 데이터셋으로 디렉토리 하나가 주어지는데 그 안에 이미지 파일과 이미지 파일명과 label이 정리된 csv 파일이 있다. 그래서 이미지 데이터로 만들기 위해 csv 파일을 읽어 파일명과 label의 index를 갖게 해줘야 한다. 그러기 위해서 우리는 다음과 같은 라이브러리를 사용한다. 필요한 라이브러리 import numpy as np import pandas as pd from PIL import Image csv 파일 로드 train_dir = "data/train/" test_dir = "data/test/" train_csv = pd.read_csv(train_dir + "train_data.csv") test_csv = pd.read_csv(test_dir + "test_data.csv") 위에..
[Python] 백준 12851번 문제, 숨바꼭질 2 https://www.acmicpc.net/problem/12851 12851번: 숨바꼭질 2 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 때 www.acmicpc.net 수빈이가 동생과 숨바꼭질 하고 있는데 수빈이가 동생을 찾는 가장 빠른 시간이 몇 초 후이며, 가장 빠른 시간으로 찾는 방법이 몇 가지인지 구하는 문제이다. 수빈이가 X(0 ≤ X ≤ 100,000)에 있다고 가정 했을 때, 1초에 { X-1, X+1, 2X }으로 이동할 수 있다. 이렇게 몇 초후에 동생이 있는 K(0 ≤ K ≤ 100,000)에 도달하는지 구..
[Android] onClick()으로 팝업 메뉴 활성화 팝업 메뉴는 OnClick() 리스너로 활성화 또는 비활성화 시키고 inflater 객체의 setOnMenuItemClick()로 적절한 이벤트를 추가할 수 있다. xml에서 onClick 속성을 사용해서 팝업 메뉴를 활성화할 수 있지만, 본 실습에서는 그렇게 하지 않았다. ibtReply는 실행 예시에 맨 아래에 있는 이미지 버튼이다. 이 이미지 버튼에 onClick 리스너를 추가해 클릭이 된다면 inflate()로 팝업 메뉴를 활성화해준다. 그런 다음 활성화된 팝업 메뉴에 대한 클릭 이벤트를 추가하기 위해 popup.setOnMenuItemClick()을 작성해야 하는데 매개변수로 클릭된 item 정보가 넘어오기 때문에 switch문에서 item.getItemId()로 item의 id를 찾아 id에 ..
[Android] Context Menu의 두 가지 모드 - Floating, Action Context Menu는 두 가지 방법으로 구현할 수 있는데 플로팅(Floating) 방식과 액션(Action) 방식이 있다. Context Menu는 Long 클릭 시 개별 뷰를 동작시키거나 갤러리와 이메일 앱처럼 평소에는 보이지 않다가 Long 클릭 시 여러 개의 체크 박스가 나오면서 선택할 수 있게 하기 위해 사용된다. 그래서 플로팅 방식은 Long 클릭 시 메뉴바를 기준으로 Context Menu가 생성되고 액션 방식은 Long 클릭 시 액션바(상단바)에 Context Menu가 생성된다. Floating Mode 플로팅 방식은 옵션 메뉴에서 구현했던 방법과 유사해서 간단하다. 이벤트 리스터 부분이 거의 비슷해 메소드명만 다르고 onCreateContextMenu()에서 여러 뷰가 적용될 수 있기..
[Android] 상단바(Action bar)에 옵션 메뉴 구현하기 메뉴의 종류로는 옵션 메뉴, 팝업 메뉴, 컨텍스트 메뉴가 있지만 오늘은 상단바(Action bar)에 옵션 메뉴를 추가해보겠다. 옵션 메뉴는 상단바에 있는 옵션 메뉴 버튼을 클릭하거나 Activity가 생성될 때 한 번만 생성된다. 그리고 Activity 당 한 개씩 구현하는데 여러 개의 Activity가 옵션 메뉴를 공유할 경유 제일 큰 부모를 상속 받아 공통적인 기능을 수행한다. 옵션 메뉴를 적용시키기 위해서 menu.xml와 같이 원하는 디자인으로 xml 생성 후에 onCreateOptionsMenu()를 통해 Activity에 inflate를 해준다. 그리고 opOptionsItemSelected()로 버튼 별 이벤트를 추가할 수 있다. onCreateOptionsMenu()에서 inflate하기..
[Python] 백준 16173번 16174번 문제, 점프왕 쩰리 시리즈 https://www.acmicpc.net/problem/16173 16173번: 점프왕 쩰리 (Small) 쩰리는 맨 왼쪽 위의 칸에서 출발해 (행, 열)로 나타낸 좌표계로, (1, 1) -> (2, 1) -> (3, 1) -> (3, 3)으로 이동해 게임에서 승리할 수 있다. www.acmicpc.net https://www.acmicpc.net/problem/16174 이 문제는 주어진 맵 밖을 벗어나거나 -1(맨 우측 하단)에 도달하지 못하면 게임에 져서 "Hing"을 출력하고 -1에 도달하면 게임에서 승리해 "HaruHaru"를 출력한다. 세부 조건으로 시작 좌표는 맨 좌측 상단인 (0, 0)이고 움직이는 방향은 우측 또는 하단이지만, 움직일 수 있는 거리는 현재 내가 있는 칸의 숫자이다. 이런..
[Android] xml이 아닌 inflate를 사용해 View 꾸미기 보통 xml 파일에서 View를 꾸미지만, java 파일에서 코드를 통해 View를 꾸미는 방법도 있다. 그러기 위해서는 inflate를 사용해야 한다. inflate를 사용하는 방법으로 두 가지가 있는데 첫번째는 LayoutInflater 객체를 사용하는 것이고 두번째는 View 클래스의 static 메소드인 inflate()를 이용하는 것이다. 두번째 방법이 더 유용하기 때문에 두번째 방법을 어떻게 사용해야 하는지 자세히 이야기해보겠다. inflate 매개변수로 xml로 디자인한 Component를 불러와 Layout에 addView() 해주면 된다. 이렇게 하면 xml마다 View를 만들어 줄 필요 없이 Component를 효율적으로 재사용할 수 있다. addView()는 LinearLayout 같..

728x90
반응형