BigData

(아나콘다 기초) Anaconda install (1)

IT오이시이 2019. 6. 22. 10:28
728x90

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

 

심층 합성곱 생성적 적대 신경망  |  TensorFlow Core

Note: 이 문서는 텐서플로 커뮤니티에서 번역했습니다. 커뮤니티 번역 활동의 특성상 정확한 번역과 최신 내용을 반영하기 위해 노력함에도 불구하고 공식 영문 문서의 내용과 일치하지 않을 수 있습니다. 이 번역에 개선할 부분이 있다면 tensorflow/docs 깃헙 저장소로 풀 리퀘스트를 보내주시기 바랍니다. 문서 번역이나 리뷰에 참여하려면 docs-ko@tensorflow.org로 메일을 보내주시기 바랍니다. 이 튜토리얼은 심층 합성곱 생성적 적대 신경

www.tensorflow.org

 

 

728x90
반응형