[13397] 구간 나누기2
·
PS/백준
문제 링크주어진 배열을 M개로 나누었을 때 구간의 점수들의 최댓값의 최솟값을 구하는 문제이다.예를 들어, 배열이 [1, 5, 4, 6, 2, 1, 3, 7] 이고, M = 3인 경우가 있다.이때, [1, 5], [4, 6, 2], [1, 3, 7]로 구간을 나누면 각 구간의 점수는 4, 4, 6점이 된다. 이때, 최댓값은 6점이다.만약, [1, 5, 4], [6, 2, 1], [3, 7]로 구간을 나누었다면, 각 구간의 점수는 4, 5, 4점이 되고, 이때 최댓값은 5점이 된다. 이 문제를 풀기 위해 아래의 방법으로 접근했다.먼저 최솟값을 설정하고, 이 최솟값을 만족하기 위해 배열이 몇 개로 나누어지는지 구한다.나누어진 배열의 갯수가 M보다 크다면 목표 최솟값을 높이고, M보다 작다면 목표 최솟값을 낮춘..
[Python] Visdom
·
Language/Python
시각화를 위한 도구인 visdom 사용법을 간단히 정리했다.설치환경 : windows10 , python3.7 설치pip 명령어를 통해 설치할 수 있다.pip install visom 서버 실행설치를 완료한 다음 아래의 명령어를 실행한다.xxxxxxxxxxpython -m visdom.server위 링크로 접속한다.이런 페이지가 나온다. 사용법xxxxxxxxxximport visdomvis = visdom.Visdom()visdom 을 사용하기 위해 위처럼 선언한다.서버가 켜져 있어야 오류 없이 실행된다. texttext를 통해 문자를 띄울 수 있다. 사용법은 아래와 같다.xxxxxxxxxxvis.text("Hello wolrd", env="main")위 코드를 실행하면 웹 페이지에 텍스트가 생긴 것을 ..
[OpenCV] 설치
·
딥러닝/OpenCV
설치환경Windows10visual studio 2017OpenCV 4.1 설치1. OpenCV 설치아래 링크에 접속하여 설치파일 다운로드링크클릭해서 설치 후 실행하면 압축이 풀리며 아래칸트 파일들 생성압축이 풀린 경로 기억 2. Visual studio 설정opencv를 사용할 새 프로젝트 생성Windows 데스크톱 마법사 선택 후 프로젝트 이름 지정하여 새 프로젝트 생성 빈 프로젝트(E) 체크 후 확인 main.cpp 파일 생성 상단 메뉴바 프로젝트(P) - {프로젝트이름} 속성(P) 클릭 구성(C)를 모든 구성으로 선택 좌측 항목들 중 C/C++ 클릭 후 추가 포함 디렉터리에 {압축을 풀었던 경로}\build\include를 입력C:\opencv4\opencv\build\include 좌측 메뉴에서..
[CUDA] 설치
·
딥러닝
Window 10Visual Studio 2017 드라이버 설치nvidia 드라이버 설치 페이지링크Manual Driver Search에서 자신이 가지고 있는 그래픽카드 버전을 선택해 드라이버 설치파일 다운로드다운로드한 설치파일을 통해 드라이버 설치 CUDA toolkit 설치드라이버 설치 후 CUDA 개발을 위한 toolkit 설치링크자신의 그래픽카드에 맞는 최신버전 설치 모두 정상적으로 설치했을 경우, Visual Studio에서 새 프로젝트 생성 시다음과 같이 NVIDIA 항목이 생성된다.CUDA 10.1 Runtime을 선택하여 프로젝트를 생성 하면 kernel.cu라는 예제 파일이 기본적으로 생성된다. 프로젝트 빌드 후 실행하면 다음과 같이 나온다
[PHP] session
·
Language/PHP
세션(session)은 컴퓨터 과학에서, 특히 네트워크 분야에서 반영구적이고 상호작용적인 정보 교환이며 둘 이상의 통신 장치나 컴퓨터와 사용자 간의 대화나 만남을 의미하는 다이얼로그(dialogue)이다.넓은 의미에서의 세션은 클라이언트가 서버에 접속하여 접속을 종료하기까지를 의미한다. HTTP 프로토콜은 stateless의 특성을 가져 클라이언트 측의 정보를 유지할 방법이 없다. 따라서 클라이언트에 대한 정보를 서버측에 저장하여 요청을 보낸 클라이언트를 식별하는 방법을 사용한다. 이 때 서버측에 저장하는 데이터를 세션이라고도 한다.PHP에서도 다른 웹 프로그래밍 언어와 같이 세션을 이용하기 위한 기능을 제공한다. xxxxxxxxxx# session_test.php​# $_SESSION을 사용하기위해서는..
Overlapped Model
·
PS/기타
윈도우는 Overlapped I/O 모델을 사용하는데, 운영체제가 직접 입력 데이터를 유저 영역으로 복사하며, 복사가 완료된 시점에 통지를 해준다. 이 과정을 자세히 알아보자. 소켓은 기본적으로 블록/동기로 만들어진다. 여기서 데이터 입출력을 수행하는 동안 블록이 발생한다. 블록/논블록, 동기/비동기에 관한 설명은 링크를 참고. 이 모델로는 하나의 쓰레드에서 두 개 이상의 소켓을 다루기 힘들다. 하나의 소켓으로 데이터 입출력을 처리하는 동안 블록 되어 대기상태가 되기 때문이다. 이 모델을 사용하면서 두 개 이상의 소켓을 다루기 위해서는 멀티 쓰레드 기술을 사용해야 한다. 이 문제는 입출력 모델을 블록/비동기 또는 논블록/비동기를 사용하여 해결할 수 있다. 블록/비동기 모델을 사용하는 기술이 select ..
[컴퓨터 비전] Tensorflow 기본 문법
·
딥러닝/컴퓨터 비전
패키지 불러오기xxxxxxxxxximport numpy as npimport tensorflow as tf​print("Version : %s" % (tf.__version)) SESSIONxsession = tf.Session()print ("open session")텐서플로는 기본적으로 설계도를 만드는 구조이다. 텐서플로의 가장 큰 장점중 하나는 computational graph를 그리는데 유용하다는 것이다. 그래프를 만들고 입력을 넣어 흐름에 따라 웨이트가 학습되는 것을 말한다.이런 연산을 실행하는 키 같은 것이 세션이다. CONSTANT일반적으로 변하지 않는 특정 값을 상수라고 한다. 텐서플로에서 상수를 생성하기 위해서는 tf.constant()를 사용하면 된다.x#타입과 값 확인def prin..
[기타] 윈도우10 원격 접속
·
기타
접속 허용다른 컴퓨터에서 접속하기 위해 설정을 해야한다. 원격 데스크톱 활성화를 클릭하여 끔에서 켬으로 바꿔준다. 원격 접속원격 접속하려는 PC의 IP 주소를 확인CMD에서 ipconfig를 통해 IP를 확인할 수 있다. 이더넷 어댑터 이더넷 하위의 IPv4 주소를 통해 원격 접속이 가능하다. 시작 -> 원격 데스크톱 연결 검색 -> 클릭 컴퓨터 부분에 IP 주소를 입력하면 된다. 접속이 안될 경우계정 로그인을 해야 정상적으로 접속이 가능하다.왼쪽 하단의 옵션 표시 클릭 PC 계정을 입력하고 연결 클릭 계정 비밀번호를 입력하고 확인 클릭 하면 정상적으로 원격 접속을 할 수 있다.