728x90
반응형

(base) conda info --envs

(base) conda list

(base) conda remove --prefix [PATH] --all

(base) conda remove --name --all

(base) activate test

(test)

 

명령어 conda 나 pip 가 같은 역할의 명령을 수행함.

주의: 모듈을 설치할때는 conda 대신 pip 사용하길 추천함 (아래 글 참고). 버전 충돌이나 miniconda 충돌 등이 발생할 수 있음. 

 

Tensorflow GPU 작동하지 않을때, 재설치 없이 수리하는 법

본 문서는 NVIDIA 그래픽 카드와 Anaconda를 설치했음에도 tensorflow_gpu가 작동하지 않은 경우, 모든 설치 앱을 갈아없지 않고 수리하는 방법을 정리한 것임. 증상 아래 그림에서 CPU만 인식한다. 몇 번

aeir.tistory.com

 

728x90
반응형
728x90
반응형

encoding은 OS 시스템 마다 다르다. 

linux 는 utf8 사용

windows 는 cp949 사용 

 

해결

import pandas as pd

df=pd.read_csv(infile, encoding='cp949')

 

 

참고 

linux 에서는 encoding 을 설정할 필요가 없다. 

pandast to_csv() 보면 default: utf-8 이 이미 설정되어 있음. 

 

 

 

 

728x90
반응형
728x90
반응형

파이썬은 파일 경로 또는 디렉토리와 관련한 코드가 많이 필요

파일 및 디렉토리 경로에 관한 함수는 모두 os 모듈을 사용하기 때문에 os 모듈의 import가 필요

 

 

현재 작업 폴더 얻기: os.getcwd() 

get current working directory

print(os.getcwd())# /Users/evan/dev/python/web-crawler-py/parsed_data

디렉토리 변경: os.chdir(path)

특정 경로에 대해 절대 경로 얻기: os.path.abspath(path)

경로 중 디렉토리명만 얻기: os.path.dir(path)

경로 중 파일명만 얻기: os.path.basename(path)

경로 중 디렉토리명과 파일명 나누어 얻기: os.path.split(path)

dir, file = os.path.split("/Users/evan/dev/python/web-crawler-py/parsed_data")print(dir, file, sep="\n")# /Users/evan/dev/python/web-crawler-py# parsed_data

파일 경로를 리스트로 얻기: 파일 경로를 os.path.sep(OS별 파일 경로 나는 문자)를 이용해 split

print("/Users/evan/dev/python/web-crawler-py/parsed_data".split(os.path.sep))# ['', 'Users', 'evan', 'dev', 'python', 'web-crawler-py', 'parsed_data']

경로를 병합하여 새 경로 생성: os.path.join(path, path1, path2, ...) 넘겨준 path들을 묶어 하나의 경로로 만듬.

print(os.path.join("/Users/evan/dev/python/web-crawler-py/parsed_data", "test"))# /Users/evan/dev/python/web-crawler-py/parsed_data/test

디렉토리 안의 파일/서브 디렉토리 리스트: os.listdir(path) path 하위에 있는 파일, 디렉토리 리스트를 보여줍니다.

print(os.listdir("/Users/evan/dev/python/web-crawler-py/parsed_data"))# ['migrations', 'models.py', '__init__.py', '__pycache__', 'apps.py', 'parser.py', 'admin.py', 'tests.py', 'views.py']

파일 혹은 디렉토리가 존재하는지 체크: os.path.exists(path)

print(os.path.exists("/Users/evan/dev/python/web-crawler-py/parsed_data"))# True​print(os.path.exists("/Users/evan/dev/python/web-crawler-py/parsed_data/admin.py"))# True

디렉토리가 존재하는지 체크: os.path.isdir(path)

print(os.path.isdir("/Users/evan/dev/python/web-crawler-py/parsed_data"))# True​print(os.path.isdir("/Users/evan/dev/python/web-crawler-py/parsed_data/admin.py"))# False

파일이 존재하는지 체크: os.path.isfile(path)

print(os.path.isfile("/Users/evan/dev/python/web-crawler-py/parsed_data"))# False​print(os.path.isfile("/Users/evan/dev/python/web-crawler-py/parsed_data/admin.py"))# True

 

파일의 크기: os.path.getsize(path)

print(os.path.getsize("/Users/evan/dev/python/web-crawler-py/parsed_data"))# 352

 

자 그럼 지금까지 배운것으로 다음 구문이 도대체 뭘 의미하는지 알아보겠습니다.

BASE_DIR = os.path.dirname(os.path.abspath(__file__))

 

import os​print(__file__)# /Users/evan/dev/python/web-crawler-py/parsed_data/parser.py​print(os.path.abspath(__file__))# Users/evan/dev/python/web-crawler-py/parsed_data/parser.py​print(os.path.dirname(os.path.abspath(__file__)))# /Users/evan/dev/python/web-crawler-py/parsed_data
 

1. __file__은 해당 파일이 모듈로서 로드되면 __file__이라는 이름으로 설정됩니다.

2. __file__을 절대 경로화 해줍니다. (맨 앞 /가 붙는 것 빼고는 차이점이 없습니다.)

3. 절대 경로에서 디렉터리 경로를 가져옵니다.

4. BASE_DIR이라는 변수에 저장에 사용합니다.



출처: https://itmining.tistory.com/122 [IT 마이닝]

728x90
반응형
728x90
반응형

>>> from matplotlib import pyplot as plt 

ModuleNotFoundError: No module named 'matplotlib'

 

이 문서는 위 에러를 고치는 과정을 통해서, Rstudio에서 python 사용시 Anacona와 Minconda  모듈 충돌 발생하는 경우의 전반적인 문제를 한 번에 해결할 수 있다. 

 

 

R 4.1.0 이상에서도 파이썬으로 딥러닝 코드를 구현할 수 있다. 

Rstudio 설치 후, 맨 처음 import os 같은 파이썬 코드를 불러오면, 아래와 같이 reticulate::repl_pyton() 이라는 모듈을 자동으로 설치한다. 자세히 보면, Miniconda3가 설치되는 것을 볼 수 있다. 

 

 

이 Minconda 가 기존에 설치된 Anacona 와 충돌을 일으키는 경우가 있다. 

 

 

에러 

예를 들면, 아래와 같이 matplotlib 문제이다.

 

>>> from matplotlib import pyplot as plt 

ModuleNotFoundError: No module named 'matplotlib'

 

 

해결

PC에 설치된 Anaconda와 Miniconda

모듈이 설치되어 있지 않은가 해서, Anaconda Prompt (anacond3) 상에서

> pip list 하면

아래와 같이 matplolib이 이미 설치되어 있음을 알 수 있다. 

따라서, anaconda가 아니라 Miniconda를 살펴봐야 한다.

 

 

r-reticulate

Rstudio는 reticulate 패키지를 설치하는데, r-reticulate 가상 환경에서 모둘을 설치해 주어야 한다.

아래와 같은 순서로 진행하면, Rstudio에서 에러를 피할 수 있다. 

1. Anaconda Prompt (R~MINI~1) 열기

2. (base) > conda env list

3. (base) > activate r-reticulate

4. (base) > pip list

   어디에도 matplotlib이 없다. 

 

5. (r-reticulate) pip install matplolib

    conda install 은 가급적 피하시길 (관련글: Tensorflow GPU 작동하지 않을때, 재설치 없이 수리하는 법)

 

6. 마지막으로 Rstudio 에서

>>> from matplotlib import pyplot as plt 

하면 에러 사라짐.

 

 

728x90
반응형
728x90
반응형

에러

KeyError: 'val_loss'

 

코드

>>># from keras.optimizers import RMSprop
>>>from tensorflow.keras.optimizers import RMSprop

>>>model = Sequential()
>>>model.add(layers.Flatten(input_shape=(lookback // step, float_data.shape[-1])))
>>>model.add(layers.Dense(32, activation='relu'))
>>>model.add(layers.Dense(1))

 

>>>model.compile(optimizer=RMSprop(), loss='mae')
>>>history = model.fit_generator(train_gen,
>>>                              steps_per_epoch=500,
>>>                              epochs=20,
>>>                              validation_data=val_gen,
>>>                              validation_steps=val_steps)
                              
>>>loss = history.history['loss']
>>>val_loss = history.history['val_loss']

 

원인

이 문제는 RMSprop 문제로 compile 이 제대로 작동하지 않아서 발생하는 문제임. 

 

해결 

아래 문장으로 대체

>>> from tensorflow.keras.optimizers import RMSprop

 

 

 

728x90
반응형

+ Recent posts