IT/Python 썸네일형 리스트형 [TCP/IP, Ubuntu, Python, C/C++] C서버와 Python 클라이언트 Data casting Issue 최근 TCP/IP Network Programming을 해야할 일이 있어서, 일을 진행하다가 개인적으로 신기했던게 있어서, 복기할 겸 글을 포스팅합니다. 1. TCP / IP 일반적으로 TCP/IP는 Byte를 전송하는 Streamer의 역활을 합니다. 따라서 모든 데이터는 Byte Stream으로 전송이 되고, 서버 및 클라이언트 상호간의 상위 데이터 프로토콜 (무엇을 보낼거냐)가 없다면 데이터를 해독할 수 없습니다. 이는 데이터를 받아서, 어떠한 데이터 캐스팅 없이, 데이터를 출력해보면 알 수 있습니다. 예를들어 C Server에서 Python Client로 어떠한 데이터를 전송하고, 이를 출력해본다면 특정한 Byte Stream으로 받는다는 것을 확인할 수 있습니다. 1-1. C Server #in.. 더보기 [MSCOCO API / Python] Install MSCOCO api 이번 포스팅에서는 MS COCO Dataset API를 Python에 설치하는 방법에 대해서 포스팅하도록 하겠습니다. 1. MS COCO MS COCO Dataset은 Object Detection, Segmentation, Captioning 대한 데이터를 330K정도를 보유하고 있는 데이터 셋입니다.홈페이지는 아래와 같으며, 데이터셋은 홈페이지를 통해서 직접 다운로드 할 수 있으나, 몇몇 공개된 코드에서는 api형태로 import되서 많이 사용됩니다. MS COCO 홈페이지MS COCO API 2. Download Repository 터미널에서 아래와 같은 명령어를 사용하여서 MS COCO API 저장소를 클론합니다.클론을 진행하면 아래와 같은 화면이 보이게 됩니다. git clone https://.. 더보기 [ubuntu / python 2.7] graph-tool 설치 오늘 포스팅은 python2.7 대상으로 graph-tool을 설치하는 방법에 대해서 포스팅하겠습니다. 1. Pre-Required sudo apt-get install -y build-essential g++ python-dev autotools-dev libicu-dev build-essential libbz2-dev libboost-all-dev libgmp3-dev libcgal* libsparsehash-dev 1. Boost 설치Boost 홈페이지에서 Boost를 다운받습니다.http://www.boost.org/ 다음과 같은 명령어를 이용해서 Boost를 설치합니다. ./bootstrap.sh --prefix=/usr/ ./b2 sudo ./b2 install 2. graph-tool 설치 .. 더보기 [numpy] numpy.pad 이번 포스팅에서는 numpy의 pad함수에 대해서 포스팅하겠습니다. 딮러닝에서 ConvNet을 구현할 때, Padding이라는 것을 주로 사용합니다. Convolution시 입력 데이터를 그냥 넣게 되면, 출력값의 차원이 작아지게 되는데, 이를 방지하기 위해서 Padding을 주로 사용합니다. Padding은 다음 포스트에 설명되어있으니 해당 포스팅을 참조하시면 됩니다. [CNN] Convolution Neural Network 이러한 Padding을 Numpy를 통해서 구현할 수 있습니다. 일반적으로 이미지는 다음과 같은 Numpy array를 통해서 표현할 수 있습니다. import numpy as np import matplotlib.pyplot as plt img = np.array([[1,2,3.. 더보기 [virtualenv/Uubuntu16.04] Python3 Virtualenv 설치 이번 포스팅에서는 Python3 환경에서 virtualenv를 사용하는 방법에 대해서 이야기하겠습니다. 1. Install pip|pip3python에서 package설치를 쉽게해주는 pip를 설치해줍니다. # sudo apt-get install python-pip sudo apt-get install python3-pip # 2. Install virtualenv with pip3pip3를 이용해서 virtualenv 를 설치해줍니다. # pip3 install virtualenv # 3. Make Project Folder & Activate virtualenvvirtualenv를 활성화시켜서 독립적인 python 실행환경을 설정해봅니다. 3-1. Activate virtualenv# mkdir t.. 더보기 [Ubuntu16.04] Install Pycharm Community / 파이참 커뮤니티 설치 이번 포스팅에서는 우분투 16.04에서 파이참 커뮤니티 설치하는 방법에 대해서 이야기하겠습니다. 1. Add PPA repository PPA 레파지토리에 다음과 같은 Pycharm 레파지토리를 추가해줍니다. # sudo add-apt-repository ppa:mystic-mirage/pycharm sudo apt-get update # 2. Install Pycharm Community # sudo apt-get install pycharm-community # 3. Execute Pycharm Community 더보기 [Python GUI Programming :: Tkinter] Hello, Again 대규모 프로그램을 작성할 때, 일반적으로 좋은 아이디어는 여러분의 코드를 하나이상의 클래스로 랩핑하는 것입니다. 이번 예제는 Matt Conway의 Hello, World 프로그램입니다. - Second Tkinter Program from tkinter import * def __init__(self, master): frame = Frame(master) frame.pack() self.button = Button( frame, text="QUIT", fg="red", command=frame.quit ) self.button.pack(side=LEFT) self.hi_there = Button(frame, text="Hello", command=self.say_hi) self.hi_there.pac.. 더보기 [Python GUI Programming :: Tkinter] Hello, Tkinter 이제 코드를 보도록 하겠습니다. 모든 튜토리얼이 그렇듯, Hello World부터 시작하겠습니다. - First Tkinter Program :: Hello1.py from Tkinter import * root = Tk() w = Label(root, text="Hello, world!") w.pack() root.mainloop() - 실행 결과 - 코드 설명 먼저 tkinter를 import하는 것으로 먼저 시작합니다. tkinter는 모든 클래스와 함수와 다른 기타 필요한 것들을 모두 포함하고 있습니다. 대부분의 경우 여러분들은 간단하게 tkinter를 import해서 네임스패이스로 필요한 것을 사용할 수 있습니다. - from ~ import tkinter # from tkinter import.. 더보기 [Python GUI Programming :: Tkinter] Tkinter란? 갑작스럽게 Python GUI 프로그래밍이 필요하게 되었습니다.일반적으로 PyQt를 써서 GUI프로그래밍을 하는데, QT는 상업 라이센스 문제가 있어서 라이센스에 걸리지 않는GUI 프로그래밍 방식을 찾다보니 Tkinter라는 것이 있어서 관련된 공부를 할 겸, 블로그 포스팅을 진행해보려고 합니다.레퍼런스는 아래에 첨부하였으니, 포스팅을 기다리는게 힘드신 분들은 아래 레퍼런스를 보시고, 공부하시면 더 빠르게 접근하실수 있습니다.해당 포스팅은 Python3.5를 기준으로 하였습니다. Tkinter 모듈은 Scriptics의 Tk GUI toolkit에 대한 Standard Python interface입니다.Tk와 Tkinter는 대부분의 Unix 플랫폼과 윈도우나 맥킨토시같은 플랫폼에서 사용이 가능합니다... 더보기 [객체지향 파이썬 프로그래밍] __init__() method [2] 1. 각 하위 클래스에서 __init__() 구현 이번에는 최상위 클래스에서 __init__() 메소드를 구현하는 것이 아닌, 각 하위 클래스에서 __init__() 메소드를 구현하는 방법에 대해서 알아보겠습니다. 이때, 각 하위 클래스로의 코드 복제를 막기 위해 중복 금지::DRY, Don't Repeat Yourself 원칙을 따르겠습니다. 다음 예제는 하위 클래스에서 초기화를 수행합니다. 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273class Suit: def __init__(self, name, sy.. 더보기 이전 1 2 다음