안녕하세요~ 보나에요!

 

오늘은 centos7 에 파이썬 가상환경을 설치 해볼 거에요!!

 

가상환경을 설치하면.. 다양한 이점들이 있어요

 

1. python 버전

2. library 버전

등..

 

버전차이로 인해 발생하는 우리들..

A라는 모듈을 사용하기 위해서 X_1.0, Y_2.0 버전이 필요하다고 생각해볼께요!

만약,

B라는 모듈을 사용하고 싶어졌어요! 근데 이 모듈은 X_1.1, Y_2.1버전이여야지 돌아간대요..

그러면 X_1.0,Y_2.0 을 uninstall 하고 새로운 버전으로 깔아야해요..

 

이렇게 자주 그러다보면 사람이 미치고 팔짝뛰는거죠잉..

 

그래서 가상환경을 깔아서! 필요한 모듈들만 싹싹! 가져오면!!

효율적으로 관리할 수 있을것 같아요!!

 

그럼 이제 한번 깔아 봅시다!!

 

sudo pip install virtualenv

 

 

 

pip 명령어를 통해 virtualenv(가상환경)을 설치해줍니다!! 저는 이미 깔려져 있어서.. ㅎㅎ

 

그럼 이제! 가상환경으로 만들어줄 폴더를 하나 만들어 봅시다!

 

저는 제 디렉토리 아래에 하나 만들어보려고해요

 

mkdir env2

 

 

env2 라는 파란 글씨를 보실 수 있어요! (파랑글씨는 디렉토리, 검정글씨는 파일을 의미해요! 참고!!)

그럼 이제 env2라는 폴더를 가상환경 폴더로 지정해줄 수 있어요!

virtualenv env2
cd env2
ls -l

env2 폴더 디렉토리 를 보시면

 

 

다음과 같이 생성되었음을 확인할 수 있어요!!

 

그리고 여기서 가상환경을 실행해 볼게요!

source ./bin/activate

 

 

 

저는 지금 env2 디렉토리가 지금 제 현재 디렉토리이기 때문에 ./bin/activate 만으로 가능했지만, 

제일 안전한 방법은 절대경로를 모두 입력해 주는것이 좋아요!!

 

Anyway,,,

그럼 이제 env2 가상환경 속으로 들어온거에요 !! 예~~~~

 

여기서 한번 확인을 해볼게요. pip list (pip로 install 한 library 목록 리턴)

python 쳐서 어떤 파이썬이 설치되어있는지

 

 

 

 

pip 라이브러리도 깨끗하고, python은 3.5.6버전이 깔려있는걸 확인할 수 있었습니다~~짝짝짝~~~

다시 나가는 방법은

deactivate

이라고 작성하시면 가상환경에서 빠져나옵니다!

큰일났어요

 

 

이것저것 만지다 보니 다양한 파이썬들이 깔렸는데... 이걸 어떻게 처리해야할 지 모르겠어요..

 

다양한 작업을 하다보니... 휴... 언젠가 다 알아내서 다 정리해 내고 말거에요.. ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ

일단 여기까지는 가상환경 설치해 보기였습니다~

'OS > Linux' 카테고리의 다른 글

transfer files from window to linux  (0) 2020.08.13
linux(centos7) 명령어 모음  (0) 2020.04.30
centos7에서 python2, python3 모두 사용하기  (0) 2020.02.09
2020_0123  (0) 2020.01.23

AND 문제

# 1. Numpy 가져오기
import numpy as np

print(np.__version__)
import keras

print(keras.__version__)
# 3. Keras 패키지 가져오기
from keras.models import Sequential
from keras.layers import Dense, Activation
from keras.optimizers import SGD
# 2. 입력/출력 데이터 만들기

X = np.array([[0,0],[0,1],[1,0],[1,1]])
y = np.array([[0],[0],[0],[1]])
# 4. Perceptron 모델 생성

model = Sequential()

model.add(Dense(units=1, input_dim=2, activation='sigmoid'))

model.summary()

# 5. Compile - Optimizer, Loss function 설정

sgd = SGD(lr=0.1)

model.compile(loss='binary_crossentropy',
              optimizer=sgd)
# 6. 학습시키기

model.fit(X,y, batch_size=1, nb_epoch=500)
# 7. 모델 테스트하기
test = np.array([[0,1]])
pred = model.predict(test)

print(pred)

[[0.09028968]]

print(model.get_weights())

[array([[4.248023 ], [4.2462897]], dtype=float32), array([-6.5563927], dtype=float32)]

 


OR 문제

X = np.array([[0,0],[0,1],[1,0],[1,1]])
Y = np.array([[0],[1],[1],[1]])
model = Sequential()

model.add(Dense(1, input_dim=2, activation='sigmoid'))
model.summary()

sgd = SGD(lr=0.1)
model.compile(loss='binary_crossentropy', optimizer='sgd')
model.fit(X,Y, batch_size=1, nb_epoch=100)
test = np.array([[1,1]])
model.predict(test)

array([[0.9742955]], dtype=float32)

 

XOR 문제

 

X2 = np.array([[0,0],[1,0],[0,1],[1,1]])
Y2 = np.array([[0],[1],[1],[0]])
model_2 = Sequential()

model_2.add(Dense(units=16,input_dim=2, activation='relu'))
model_2.add(Dense(units=1, activation='sigmoid'))

model_2.compile(loss='binary_crossentropy',optimizer=sgd)
model_2.fit(X2,Y2, batch_size=1, nb_epoch=200)
test = np.array([[0,0],[1,0],[0,1],[1,1]])
pred = model_2.predict(test)
print(pred)

 

'Data Anaylsis > Deep Learning' 카테고리의 다른 글

딥러닝 3일차  (0) 2020.03.18
딥러닝 2일차  (0) 2020.03.17
Keras 모델 생성/학습 - 당뇨병 예측 모델  (0) 2020.03.16
Deep learning 1일차  (0) 2020.03.16
conda 가상환경 설치  (1) 2020.03.13

python으로 다양한 라이브러리를 받아서 사용하다 보면,

라이브러리의 버전 차이 때문에 곤란할 때가 많습니다.

 

 

여기서는, conda 명령어를 통해 environment(가상 환경)을 만들어,

그곳에 필요한 라이브러리를 설치하는 실습을 해보도록 하겠습니다.

(주의! anaconda 64bit, window 환경이 기본적으로 설치되어 있어 합니다!)

Anaconda Prompt를 열어주세요!


 

env 만들기

conda create -n keras_env python=3.6

keras_env라는 이름으로 가상 환경을 만들건대, python 버전은 3.6으로 설치할 것이라고 명명한다.

 

설치되어있는 env를 보려면 

conda env list

라고 작성해주시면 됩니다.

Anaconda Prompt 창을 보시면

 

다음과 같이 (base)라는 것을 보실 수 있습니다. base는 가상 환경이 아닌 기본 환경을 뜻하는 것으로,

가상 환경으로 넘어가서 라이브러리들을 설치해주어야 합니다.

conda activate keras_env

다음과 같이 작성해주시면 

가상 환경이 활성화되었음을 확인할 수 있습니다.

pip list

해보시면,

 

기본적으로 설치되는 라이브러리들(뭔가 가상환경 실행을 위한 파일들 같음) 빼고는 라이브러리가 텅텅 빈 것을 볼 수 있습니다.

 

# 가상환경 비활성화
conda deactivate

# 가상환경 삭제
conda env remove -n keras_env

다음 명령어로 비활성화할 수 있고, 삭제할 수 있습니다.

 

마지막으로, 가상 환경에 tensorflow와 keras를 설치해보도록 하겠습니다.

현재는 tensorflow가 2.1.0까지 나와있는 상태입니다.

"케라스 창시자에게 배우는 딥러닝" 책을 공부하기 위해서, 책에서 사용하는 라이브러리 버전과 같게

tensor flow를 설치하는게 아무래도 좋겠죠?

tensorflow는 1.8.0 버전, keras는 2.2.0 버전을 사용하는 것 같으니 버전을 맞추어 pip로 설치해보도록 합시다.

 

가상환경 turn it on!

pip install tensorflow==1.8.0
pip install keras==2.2.0

설치가 문제없이 되었음을 확인할 수 있습니다.

python을 열고 import 해보겠습니다.

 

잘 import 되는 것을 확인할 수 있습니다!

 

지금까지 가상환경 설치, 가상환경에서 tensorflow,keras를 버전에 맞추어 설치해보았습니다.

'Data Anaylsis > Deep Learning' 카테고리의 다른 글

딥러닝 3일차  (0) 2020.03.18
딥러닝 2일차  (0) 2020.03.17
Keras 모델 생성/학습 - 당뇨병 예측 모델  (0) 2020.03.16
AND,OR/XOR 문제 keras로 구현!  (0) 2020.03.16
Deep learning 1일차  (0) 2020.03.16

return값으로 입력 파라메터값 역순 출력하는 reverse함수

def reverse(x,y,z):
    return z,y,x


ret = reverse(1,2,3)
print(ret)

r1,r2,r3 = reverse('a','b','c')
print(r1,r2,r3)

(3, 2, 1)

c b a

 

 

 

입력 파라메터 순서와 상관없이, 해당 파라메터=값 형태로 입력을 넣어줄 수 도 있다.

하지만, 입력 파라메터와 함수내에서 사용하는 변수명이 같아야 하므로(?)

불편하다 안쓴다.

def calc(x,y,z):
    print(x)
    print(y)
    print(z)
    return x+y+z


print(calc(y=20,x=10,z=30))

10

20

30

60

 

 

이 함수를 실행하면 오류가 나타난다.

왜일까?

이유는 함수 내에서 정의되어진 변수 result는 그 함수 내에서만 작동하고 함수가 끝나면 메모리를 잃게 되어

변수가 사라진다. 그래서 print(result)문을 실행하면 name 'result' is not defined라고 오류문을 내뱉는다.

def calculate_area(radius):
    result = 3.14 * radius **2
    return result

r = float(input('원의 반지름: '))
area = calculate_area(r)
print(result)

지역변수, 전역변수 개념을 확고히 하자.

r은 지역변수로서, 함수 내에 r을 활용하여도 전역변수 r에 할당된 값이 작용한다.

def calculate_area():
    result = 3.14*r**2
    return result

r = float(input('원의 반지름: '))
area = calculate_area()
print(area)

 

 

para_func 함수는 3개의 파라미터를 입력받는다. 여기서 주목할 것이,

v3 = 0으로 인해 v3의 default값이 0으로 주어진다.

따라서, para_func(10,20)으로 입력해도 오류가 나지 않는다. why?

para_func(10,20)은 para_func(10,20,0)으로 작동하기 때문이다.

para_func(10,20,30)을 해주면 v3=0의 default값에 v3 = 30이 들어간다.

def para_func(v1,v2,v3=0):
    result = 0
    result = v1 + v2 + v3
    return result


##전역 변수 선언 부분 ##
hap = 0

##메인 코드 부분 ##
hap = para_func(10,20)
print(hap)
hap = para_func(10,20,30)
print(hap)

*para를 활용하면, 파라미터 값 갯수 제한이 없어진다. 1개만 넣어도 되고, 2개, 3개 , etc... 

넣는 만큼 파라미터로써 작용할 수 있도록 *를 붙여준다.

여기서 주목할 것이, *para에서 para는 튜플 형태로 들어가게된다.예를들어, 

para_func(10,20)을 하게 되면 para = (10,20) tuple형식이 된다.

def para_func(*para):
    result = 0
    for num in para:
        result += num
    print(type(para))
    return result


##전역 변수 선언 부분 ##
hap = 0

##메인 코드 부분 ##
hap = para_func(10,20)
print(hap)
hap = para_func(10,20,30)
print(hap)

for 문은 in 뒤의 값을 iterating하는 반복문이다.

in 뒤에는 다양한 자료형이 올 수 있고, 다음과 같이 string을 넣어주면, string을 값 하나하나씩

뽑아서 보여준다. string 자체를 넣어도 되고, string이 할당된 변수를 입력해주어도 상관없다.

for x in 'hello python':
    print(x)
    
aStr = 'hello python'
for ch in aStr:
    print(ch)

for 문에서 가장 많이 사용하는 것이 range함수이다.

range(start,end,step)순으로 입력하면 되며, start, step은 각각 0,1의 default값을 갖는다.

예를들어, range(0,10,1) = range(0,10) = range(10)이다.

for i in list(range(0,11)):
    print(i)
for i in range(0,11):
    print(i)

'Data Anaylsis > python basic' 카테고리의 다른 글

정규표현식  (0) 2020.01.09
클래스  (0) 2020.01.06
파이썬기초(4)  (0) 2019.12.30
파이썬기초(3)  (0) 2019.12.26
파이썬기초(2)  (0) 2019.12.26

x in a 어떤 자료 x가 리스트 a 안에 있는지 확인합니다.

import random

numbers = []
for num in range(0,10):
    numbers.append(random.randrange(0,10))
    
print('생성된 리스트',numbers)
for num in range(0,10):
    if num not in numbers:
        print('숫자 {}는(은) 리스트에 없네요.'.format(num))

생성된 리스트 [4, 0, 3, 3, 5, 8, 9, 5, 5, 3]

숫자 1는(은) 리스트에 없네요.

숫자 2는(은) 리스트에 없네요.

숫자 6는(은) 리스트에 없네요.

숫자 7는(은) 리스트에 없네요.

 

 

 

 

sort함수와 sorted함수의 차이점은?

sort는 리스트에 적용을 시키면 그 리스트 자체가 바뀌고,

sorted는 리스트에 적용시켜도 따로 할당을 시키지 않으면 적용되지 않는다.

 

 

time 함수는, 현재 시간을 기록시켜주는 함수이다.

 

import time
n1 = input('Press Enter and wait for 20 seconds.')
start = time.time()
n2 = input('Press Enter and wait for 20 seconds')
end = time.time()
real_time = end - start

if real_time>20:
    print(real_time-20)
else:
    print(20-real_time)

Press Enter and wait for 20 seconds. Enter

Press Enter and wait for 20 seconds Enter

 

10.602973222732544

 

 

random.randint를 사용하여 문제의 index번호를 활용하였다.

import random
import time
test = ['snake','frog','fox','cat','dog']
num = 1
start = time.time()
while test:
    print('*문제{}'.format(num))
    
    question = random.randint(0,len(test)-1)
    
    print('{}'.format(test[question]))
    while True:
        answer = input()
        if test[question] == answer:
            print('통과!')
            num +=1
            del test[question]
            break
            
        else:
            print('다시푸세요.')
            print('{}'.format(test[question]))
            continue
end = time.time()
print('걸린시간 %1.1f'%(abs(start-end)))
    

*문제1

cat

c

다시푸세요.

cat

cat

통과!

*문제2

frog

frog

통과!

*문제3

dog

dog

통과!

*문제4

fox

fox

통과!

*문제5

snake

snake

통과!

걸린시간 6.7

 

 

random.choice를 활용하였고, 해당 값을 통과하면 list자료형 내에 존재하는 remove함수를 활용하여

통과한 문제를 제거한다.

import random
import time
test = ['snake','frog','fox','cat','dog','mouse','sheep','deer']
num = 1
num2 = 1
start = time.time()
while test:
    num +=1
    print('*문제',num)
    question = random.choice(test)
    print(question)
    
    while True:
        num2+=1
        answer = input()
        if question == answer:
            print('통과!')
            test.remove(question)
            
            break
        else:
            print('다시푸세요.')
            print(question)
            
            continue
end = time.time()
print('걸린시간 %1.1f'%(abs(start-end)))
print('정답률:',num/num2*100,'%')
    

*문제 2

dog

다시푸세요.

dog

dog

통과!

*문제 3

sheep

sheep

통과!

*문제 4

frog

frog

통과!

*문제 5

mouse

mouse

통과!

*문제 6

fox

fox

통과!

*문제 7

cat

cat

통과!

*문제 8

snake

snake

통과!

*문제 9

deer

deer

통과!

걸린시간 13.6

정답률: 90.0 %

'Data Anaylsis > python basic' 카테고리의 다른 글

클래스  (0) 2020.01.06
파이썬기초(5)  (0) 2019.12.31
파이썬기초(3)  (0) 2019.12.26
파이썬기초(2)  (0) 2019.12.26
파이썬 기초(1)  (1) 2019.12.26

+ Recent posts