Anaconda 기초
파이썬 개발 플랫폼 Anaconda 는
pip가 파이썬 패키지를 설치하고 관리하는 패키지 관리자라면
아나콘다는 Python ,R 기반 데이터 분석을 위해 다양한 라이브러리를 쉽게 쓸수 있도록 패키지 관리와 가상환경을 제공하는 패키지 관리 플랫폼이다.
Anaconda는 Scipy, Numpy, Pandas 및 모든 종속성을 포함하는 바이너리 세트를 제공한다.
[파이썬의 특징 과 변화]
- 파이썬의 특징은 스크립트 언어이지만 오픈소스로 상당히 빠른 버전업이 되고 있다.
필자가 2000년경 썼던 파이썬은 웹 CGI(Common gateway interface) 서버나 메일 발송 서버 같은 데몬서비스 개발로 많이 썼던 때가 있었다. 특히 리눅스 설치 GUI나 redhat-update 같은 것들이 파이썬으로 되어서 소스를 참고 했던 기억이난다.
지금은 빅데이터 분석 머신러닝, 인공지능 등을 위해서 많이 쓰이고 있다. 특히나 Tensorflow나 R과 같이 분석용 환경에 적합한 라이브러리들이 파이썬 기반으로 생태계가 만들어 지고 있다.
이런 배경은 Ruby on Rails , Python pip 와 같이 클라우드 기반의 환경에서 오픈소스 개발자들이 수많은 라이브러리를 재생산하고 있다는 점이다.
아나콘다, Spider, Tensorflow, C
아나콘다 설치와 사용법
[아나콘다 기본 사용법]
#아나콘다 버전 확인
conda --version
#아나콘다 최신 업데이트
conda update -n base conda
#아나콘다 전체 패키지 업데이트
conda update --all
[아나콘다와 텐서플로우]
아나콘다를 통해서 Scipy (통계 분석 패키지), Numpy (수치 컴퓨팅 패키지) Pandas(데이터를 병합 추상화 변환) 등의 다양한 파이썬 패키지는 물론 TensorFlow와 함께 프로그램이 가능하다.
Tensorflow는 ML 모델을 개발하고 학습시키는 데 도움이 되는 핵심 오픈소스 인공지능 라이브러리를 제공한다.
쉽게 머신러닝과 학습 데이터를 러닝할 수 있는 일종의 문법을 제공하고 있기 때문에 쉽게 코드를 개발할 수있다. 특히 주피터 노트북이라는 브라우저 기반 개발 환경을 통해서 쉽게 코드와 블럭단위 테스트도 가능하게 되었다.
# 아나콘다 명령어 사용법
usage: conda-script.py [-h] [-V] command ...
conda is a tool for managing and deploying applications, environments and packages.
Options:
positional arguments:
command
clean Remove unused packages and caches.
config Modify configuration values in .condarc. This is modeled
after the git config command. Writes to the user .condarc
file (C:\Users\assd\.condarc) by default.
create Create a new conda environment from a list of specified
packages.
help Displays a list of available conda commands and their help
strings.
info Display information about current conda install.
init Initialize conda for shell interaction. [Experimental]
install Installs a list of packages into a specified conda
environment.
list List linked packages in a conda environment.
package Low-level conda package utility. (EXPERIMENTAL)
remove Remove a list of packages from a specified conda environment.
uninstall Alias for conda remove.
run Run an executable in a conda environment. [Experimental]
search Search for packages and display associated information. The
input is a MatchSpec, a query language for conda packages.
See examples below.
update Updates conda packages to the latest compatible version.
upgrade Alias for conda update.
optional arguments:
-h, --help Show this help message and exit.
-V, --version Show the conda version number and exit.
conda commands available from other packages:
build
convert
debug
develop
env
index
inspect
metapackage
render
server
skeleton
verify
아래와 같이 텐서플로와 파이썬을 이용하는 예를 참고 하여 간단히 사용하는 방법을 익힐수 있다.
텐서플로와 다른 라이브러리 불러오기
from __future__ import absolute_import, division, print_function, unicode_literals
!pip install -q tensorflow-gpu==2.0.0-rc1
import tensorflow as tf
tf.__version__
'2.0.0-rc1'
# GIF를 만들기위해 설치합니다.
!pip install -q imageio
import glob
import imageio
import matplotlib.pyplot as plt
import numpy as np
import os
import PIL
from tensorflow.keras import layers
import time
from IPython import display
데이터셋 로딩 및 준비
생성자와 감별자를 훈련하기위해 MNIST 데이터셋을 사용할것입니다. 생성자는 손글씨 숫자 데이터를 닮은 숫자들을 생성할 것입
# 데이터셋 로딩 및 준비
(train_images, train_labels), (_, _) = tf.keras.datasets.mnist.load_data()
train_images = train_images.reshape(train_images.shape[0], 28, 28, 1).astype('float32')
train_images = (train_images - 127.5) / 127.5 # 이미지를 [-1, 1]로 정규화합니다.
BUFFER_SIZE = 60000
BATCH_SIZE = 256
# 데이터 배치를 만들고 섞습니다.
train_dataset = tf.data.Dataset.from_tensor_slices(train_images).shuffle(BUFFER_SIZE).batch(BATCH_SIZE)
모델 만들기
생성자와 감별자는 케라스 Sequential API를 이용해 정의됩니다.
생성자
생성자는 시드값 (seed; 랜덤한 잡음)으로부터 이미지를 생성하기 위해, tf.keras.layers.Conv2DTranspose (업샘플링) 층을 이용합니다. 처음 Dense층은 이 시드값을 인풋으로 받습니다. 그 다음 원하는 사이즈 28x28x1의 이미지가 나오도록 업샘플링을 여러번 합니다. tanh를 사용하는 마지막 층을 제외한 나머지 각 층마다 활성함수로 tf.keras.layers.LeakyReLU을 사용하고 있음을 주목합시다.
def make_generator_model():
model = tf.keras.Sequential()
model.add(layers.Dense(7*7*256, use_bias=False, input_shape=(100,)))
model.add(layers.BatchNormalization())
model.add(layers.LeakyReLU())
model.add(layers.Reshape((7, 7, 256)))
assert model.output_shape == (None, 7, 7, 256) # 주목: 배치사이즈로 None이 주어집니다.
model.add(layers.Conv2DTranspose(128, (5, 5), strides=(1, 1), padding='same', use_bias=False))
assert model.output_shape == (None, 7, 7, 128)
model.add(layers.BatchNormalization())
model.add(layers.LeakyReLU())
model.add(layers.Conv2DTranspose(64, (5, 5), strides=(2, 2), padding='same', use_bias=False))
assert model.output_shape == (None, 14, 14, 64)
model.add(layers.BatchNormalization())
model.add(layers.LeakyReLU())
model.add(layers.Conv2DTranspose(1, (5, 5), strides=(2, 2), padding='same', use_bias=False, activation='tanh'))
assert model.output_shape == (None, 28, 28, 1)
return model
(아직 훈련이 되지않은) 생성자를 이용해 이미지를 생성해봅시다.
generator = make_generator_model()
noise = tf.random.normal([1, 100])
generated_image = generator(noise, training=False)
plt.imshow(generated_image[0, :, :, 0], cmap='gray')
아래 Tutorial 를 참고하여 연습하면 좋을듯 하다.
https://www.tensorflow.org/tutorials/generative/dcgan
'BigData' 카테고리의 다른 글
[SQLite] date형식 timestamp를 이용하여 날짜표현하기 (0) | 2020.08.05 |
---|---|
Graph DB 와 RDBMS 트랜드 1부- DBMS의 역사와 이론들 (0) | 2020.03.21 |
zookeeper / firewalld 설치 (0) | 2020.03.08 |
hadoop 3.0에 설치되는 시스템 정리 (0) | 2018.10.21 |
Apache Flink 버전 1.6.0이 출시 (0) | 2018.09.13 |
빅 데이터 애플리케이션을위한 NoSQL 데이터베이스의 효과적인 크기 조정 (0) | 2018.07.24 |
Mariadb Install (2) - 설치 & 환경설정 installation (0) | 2017.11.15 |