안녕하세요. 은공지능 공작소의 파이찬입니다.
오늘은 Tensorflow estimator의 2가지 에러를 해결하는 포스팅을 준비했습니다.

1. TypeError: Fetch argument 0 has invalid type <class 'numpy.int64'> must be string or Tensor
2. TypeError: TF_SessionRun_wrapper: expected all value in input dict to be ndarray                 

자신의 코드와 데이터에 문제가 없는데, 자꾸 위의 에러가 뜨시는 분들은

계속 포스팅을 봐주시길 바랍니다. 우선 간단한 요약부터 시작하겠습니다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1. 트러블 슈팅 요약

 

 

 

pip uninstall numpy # numpy 없다고 뜰 때까지 계속 반복해주세요.
pip install numpy # 저는 1.17버전이 깔렸으니, 참고해주세요.
pip install cython # 이 부분은 스킵해도 될 수 있는데, 저는 실행하였기에 남겨둡니다.
Tensorflow estimator에서 TypeError가 뜬 이유는 Numpy 라이브러리 때문이었습니다.
1.15 버전과 1.16 버전이 충돌해서 문제가 발생하는 것 같았습니다.
위의 코드처럼 numpy를 지웠다가 다시 깔아주면 문제는 해결됩니다.


만약 더 자세한 설명이 필요하신 분들은 계속 봐주세요. 

 

 

 

 

 

2-1. 문제 상황 (에러 메시지)

 

 

 

위와 같이 2가지 에러메시지가 뜨는 상황입니다.
각각 다른 코드인데, 해결법은 동일합니다.

 

 

 

 

 

 

 

2-2. 모든 프로그램 창 닫아주기 (주피터, 파이참 등)

 

 

 

반드시 모든 프로그램(파이참, 주피터 등)을 닫아주시길 바랍니다.
안 그러면, 위와 같은 PermissionError 메시지가 뜹니다...

 

 

 

 

 

그래도 Numpy가 제거는 됩니다 ㅎㅎ
위의 사진은 주피터 노트북을 킨 상태에서 pip uninstall numpy를 날려줬을 때의 모습입니다.
마지막 줄에 numpy 1.16 버전이 제거가 되었다고 뜬 것을 확인하실 수 있을 겁니다.

그래도 여러분들은 저같은 시행착오를 방지하기 위해서,
꼭 모든 프로그램을 닫고 명령어를 날려주시길 바랍니다. 계속 진행해보겠습니다.

 

 

 

 

 

 

 

2-3. pip uninstall numpy 명령어 실행

(numpy가 없다고 뜰 때까지 계속 반복)

 

 

 

다시 모든 프로그램을 종료하고 돌아왔습니다.
그리고 pip uninstall numpy 명령어를 날려줍니다.

역시 제거할 numpy가 남아있었네요.
아까 분명 numpy 1.16 버전이 제거가 되었다고 된 상태였음에도, 1.15버전이 남아있습니다.
y를 눌러서 제거를 해주시면 됩니다.

 

 

 

 

 

numpy가 깔끔하게 제거되었는지 알아보기 위해, 간단한 테스트를 진행해보겠습니다.
위의 화면처럼 우선 python을 실행시켜주시길 바랍니다. 그냥 python이라고 치시면 돼요 ㅎㅎ

파이썬이 실행이 되었다면, '>>>'이런 표시가 코드에 나타나게 됩니다.
이 상태에서 import numpy 명령어를 통해, numpy 라이브러리를 불러와줍니다.

No module named 'numpy'라고 뜬 부분이 보이시나요?
 numpy라는 라이브러리가 성공적으로 제거가 되었다는 뜻입니다.

 

 

 

 

 

 

 

2-4. pip install numpy 명령어 실행

 

 

 

pip install numpy 명령어를 날려서, 다시 numpy를 설치해줍니다.
마지막줄을 보니, numpy 1.17.1 버전이 설치가 되었군요.

하지만 빨간색줄로 에러가 상당히 많이 떠서... 좀 거슬립니다.
그래서 cython만 우선 설치해보고 테스트를 해보기로 했습니다.

 

 

 

 

 

cython이 성공적으로 설치가 된 모습입니다.
이 부분은 스킵을 해도 상관 없을 것 같긴 합니다.
하지만 저는 실행시켜준 부분이기에, 혹시 몰라 이렇게 알려드리는 겁니다.

 

 

 

 

 

 

 

3. 코딩 테스트

 

 

 

다시 코드를 돌려보니, 에러가 났던 것이 정상적으로 작동합니다.
이 에러를 가지고 거의 3일동안 씨름했거든요.. ㅜㅜ 감개무량합니다.

 

 

 

 

 

사진: 파이찬 여름 휴가 중 (가평에서)

이렇게 오늘은 텐서플로우 에스티메이터 TypeError를 해결해보았습니다.
여름이 끝나가는데, 다들 여름휴가는 다녀오셨나요? ㅎㅎ
가끔은 머리도 식히고, 휴식도 필요하다는 것 잊지 마세요~!

지금까지 은공지능 공작소의 파이찬이었습니다.
감사합니다.
블로그 이미지

pychan

딥러닝에 관련된 시행착오, 사소하지만 중요한 것들, 가능한 모든 여정을 담았습니다.

댓글을 달아 주세요

안녕하세요. 은공지능 공작소의 파이찬입니다!!!
오늘은 주피터 노트북에 처음 입문하시는 분들을 위한
단축키 꿀팁 5가지를 준비했습니다.

 

 

 

 

 

 

 

 

 

 

 

 

1. 코드창, 커맨드창 단축키 (Enter, Esc)

 

 

가장 기본이 되는 단축키 입니다.
Enter는 코드창을 실행하여 초록색 테두리의 셀로 바뀌게 합니다.
여기서 빠져나와 다시 커맨드 창으로 돌아가려면, Esc를 누릅니다.

모든 단축키는 파란색 커맨드 창에서 동작을 합니다.
또한, 커맨드 창모드(파란색)에서는 화살표로 위, 아래 셀로 이동이 가능합니다.

 

 

 

 

 

 

 

2. 제목 만들기 (숫자키 1 ~ 6)

 

 

 

숫자키 1 ~ 6을 눌러 제목을 만들 수 있습니다.
이 역시 파란색 커맨드 셀에서 실행해야 한다는 것을 잊지 마세요.

#의 개수가 많아질 수록 글자크기는 작아집니다.
제가 주로 사용하는 크기는 # 하나, # 셋 입니다.

# 뒤에 원하시는 제목을 적은 후 Ctrl + Enter를 누르시면
깔끔한 제목이 완성이 됩니다.

 

 

 

 

 

 

 

3. 셀 추가 및 삭제 (b,a / dd)

 

 

셀추가는 b버튼, a버튼을 통해서 합니다.
보통 아래로 셀을 추가하기 때문에 b를 많이 씁니다.
셀을 삭제하실 때에는 d를 두번 연타하시면 됩니다. (dd)

각각 below, above, delete의 약자라고 생각하시면
외우기 편할 것입니다.

 

 

 

 

 

 

 

4. 마크다운창 및 코드창 단축키 (m, y)

 

 

 

m키로 코드창을 마크다운창으로 변경시킬 수 있습니다.
이 마크다운창에서 다양한 필기를 하는 것입니다.
다시 코드창으로 돌아오려면 y를 누릅니다.

 

 

 

 

 

5. 마크다운 꿀팁 (br태그, 머리글, 수평선)

 

 

 

만약에 마크다운에서 줄을 바꾸고 싶으시다면,
<br> 태그를 사용해 보세요. 그냥 <br>이라고 치시면 됩니다.
이는 일종의 html 태그인데요, 마크다운에서도 이런 html 언어가 적용이 됩니다!
(만약 html 지식이 좀 있으신 분들은 여러모로 유리합니다!)

 

 

 

 

 

- 를 통해 글머리를 넣을 수 있습니다.
많은 항목들을 나열할 때, 글머리로 정리하면 깔끔하죠!
또한 숫자형으로도 글머리를 넣을 수 있으니 참고바랍니다.
(1.    2.   <- 이런식으로 숫자와 점을 쓰시면 순서형 글머리가 됩니다)

 

 

 

 

 

필기를 하다가 단락 등을 구분할 때, 수평선(---)을 그어주면 좋습니다.
저런식으로 수평선을 그어주면 훨씬 깔끔한 느낌이 듭니다.

 

 

 

 

 

 

 

마무리

 

 

 

수고하셨습니다~!!
오늘은 주피터 노트북을 처음 쓰시는 분들을 위해서
많이 쓰이는 단축키 + 마크다운 언어 꿀팁을 함께 보았습니다.

도움이 되셨다면 하단의 하트버튼 한 번 부탁드립니다.
감사합니다!
블로그 이미지

pychan

딥러닝에 관련된 시행착오, 사소하지만 중요한 것들, 가능한 모든 여정을 담았습니다.

댓글을 달아 주세요

 

안녕하세요. 은공지능 공작소의 파이찬입니다.
오늘은 아나콘다 프롬프트창에서 Kaggle API 설치부터
데이터 다운로드하는 방법까지 알아보도록 하겠습니다.

 

 

 

 

 

 

 

 

 

 

 

 

1. Kaggle API 설치

 

 

 

conda install -c conda-forge kaggle
conda install kaggle
위의 명령어들을 입력하여 kaggle을 설치해 줍니다.

여담이지만, 먼저 conda install kaggle 명령어를 치니까 안되더라고요.. ㅜㅜ
구글링해서 알아보니 conda install -c conda-forge kaggle 명령어를 쓰라고 합니다.
그럼에도 불구하고 두 명령어 다 해준 것은 노파심 때문에 그렇습니다.. ㅎㅎ

네 아무튼, 다 설치가 되셨으면 이제 kaggle 홈페이지에서
사용자 토큰을 생성해주어야 합니다.

 

 

 

 

 

 

 

2. kaggle 사용자 토큰 생성하기

 

 

 

https://www.kaggle.com/

 

Kaggle: Your Home for Data Science

 

www.kaggle.com

kaggle 홈페이지에 접속하셔서, 가입을 먼저 해주셔야 합니다.
가입 절차는 그렇게 엄청 복잡하지는 않습니다.
구글 아이디만 있으면 자동으로 연동이 되는 것으로 알고 있습니다.

 

 

 

 

 

계정을 생성하셨다면, 우측 상단에 있는 계정 프로필을 클릭하시고
My Account로 들어가 줍니다.

 

 

 

 

 

My Account에 들어가셨다면,
쭉 스크롤을 내리셔서 Create New API Token 버튼을 누릅니다.
그러면 kaggle.json이라는 파일이 하나 다운받아질 것입니다.

 

 

 

 

 

다시 아나콘다 프롬프트로 돌아옵니다.
명령어에 kaggle이라고 쳐서 아무 명령어나 날려줍니다.
이렇게 쓸데없이 명령어를 날려주는 이유는 .kaggle이라는 폴더를 생성하기 위해서입니다.

이 .kaggle이라는 폴더는 사용자가 억지로 만들 수 있는 것이 아니고
이런 식으로 명령어를 통해서 시스템이 만들어 주는 폴더입니다.
저런 식으로 한 번 명령어를 날려줘야 디렉터리 인식을 하는 모양입니다.

 

 

 

 

이제 아까 받아두었던 kaggle.json 파일을 .kaggle 안에 옮겨줍니다.
이렇게 하여 kaggle 사용자 토큰 설정이 끝났습니다.

 

 

 

 

 

kaggle competitions list
간단한 테스트를 해보겠습니다.
다시 아나콘다 프롬프트도 돌아와서 위의 명령어를 입력해줍니다.
해당 명령어는, 캐글에서 진행되고 있는 경진대회 목록을 보여주는 명령어입니다.

 

 

 

 

 

명령어가 잘 수행되었고, 테스트가 성공적으로 끝났습니다.

 

 

 

 

 

 

 

3. kaggle API로 데이터 다운로드하기

 

 

 

kaggle datasets 텝에는 실습에 사용할 수 있는 좋은 데이터들이 많이 있습니다.
이 데이터들은 홈페이지를 통해서 직접 다운받아도 되지만,
Kaggle API를 통해서 다운로드할 시 더 편리한 이용이 가능합니다.

 

 

 

 

 

kaggle datasets list
먼저 위의 명령어를 입력해서 다운받을 수 있는 데이터들의 리스트를 확인합니다.

 

 

 

 

kaggle datasets download <데이터명> -p <"경로">
리스트들을 확인하시고,
다운로드하고 싶은 데이터명을 그래그한 뒤 마우스 우클릭으로 복사합니다.
위의 명령어를 입력하시면 데이터를 쉽게 받을 수 있습니다.

만약 다운로드 경로를 바꾸고 싶으시다면,
위의 명령어처럼 -p 뒤에 자신이 원하는 경로를 입력하면
해당 폴더 안으로 다운로드를 할 수 있습니다.

 

 

 

 

 

만일 홈페이지에서 본 데이터를 kaggle API로 다운받고 싶다면,
위의 그림처럼 ··· 버튼을 클릭 후 Copy API Command를 눌러줍니다.
해당 명령어를 복사하고 그대로 아나콘다 프롬프트 창에 입력하면 데이터 다운로드가 됩니다.

 

 

 

 

 

홈페이지에서 커맨드를 복사해도 잘 다운로드가 된 모습입니다.

네 오늘 포스팅은 여기까지 하겠습니다.
도움이 되셨다면 왼쪽 하단에 하트 버튼 꾹 부탁드립니다!
감사합니다.
블로그 이미지

pychan

딥러닝에 관련된 시행착오, 사소하지만 중요한 것들, 가능한 모든 여정을 담았습니다.

댓글을 달아 주세요

안녕하세요. 은공지능 공작소의 파이찬입니다.
오늘은 Permission 에러 없는 Spacy 라이브러리 설치법에 대해 알아보겠습니다.
Spacy는 자연어처리를 위한 라이브러리인데,
Permission 에러 때문에 설치에 애를 먹었던 경험이 있습니다.
그래서 이러한 문제에 대한 해결법을 포스팅으로 작성해보게 되었습니다.

 

 

 

 

 

 

 

 

 

 

 

 

1. Conda를 이용한 Spacy 설치

 

 

conda activate <가상환경이름>
conda install spacy
아나콘다 프롬프트를 실행한 뒤,
conda activate 명령어를 이용하여 원하는 가상환경을 켜줍니다.

그런 다음, conda install spacy 명령어를 입력하여
Spacy 라이브러리를 설치 해줍니다.
설치는 비교적 간단하게 끝납니다. (다음이 중요합니다)

 

 

 

 

 

 

2. 아나콘다 프롬프트 관리자 권한으로 재시작

 

 

 

아나콘다를 종료하시고 오른쪽 마우스를 클릭하여
관리자 권한으로 다시 실행시켜 줍니다.

관리자 권한으로 실행하지 않고 계속 진행한다면,
위의 그림과 같은 에러 화면이 뜨게 됩니다...
(여러분들은 저 같은 실수를 반복하지 마세요... ㅜㅜ)

 

 

 

 

 

conda activate <가상환경이름>
python -m spacy download en
관리자 권한으로 실행시키셨다면, 위의 명령어를 입력하여
Spacy의 en 모델을 다운로드 해줍니다.
(**en은 english의 줄임말입니다.)

 

 

 

 

 

정상적으로 모델을 다운받았다면, 위와 같은 화면이 뜨게 됩니다.

 

 

 

 

 

 

3. 간단한 테스트

 

 

 

Be extremely subtle, even to the point of formlessness. 
Be extremely mysterious, even to the point of soundlessness. 
Thereby you can be the director of the opponent's fate.


미묘하고도 미묘하여 보이지 않는 경지에 이르며, 
신비하고도 신비하여 소리가 없는 경지에 이른다. 
그러므로 능히 적의 생사를 맡아 다스리게 되는 것이다.
- 손자병법 -
제가 좋아하는 손자병법의 구절 중 하나입니다.
지금부터 이를 단어별로 Tokenizing(쪼개기)하는 테스트를 해보겠습니다.

 

 

 

 

 

import spacy

a = spacy.load('en') # 잉글리시 버전의 패키지를 불러온다.
sentence = "Be extremely subtle, even to the point of formlessness. Be extremely mysterious, even to the point of soundlessness. Thereby you can be the director of the opponent's fate."

doc = a(sentence)

word_tokenized_sentence = [token.text for token in doc]

print(word_tokenized_sentence)
output:
['Be', 'extremely', 'subtle', ',', 'even', 'to', 'the', 'point', 'of', 'formlessness', '.', 'Be', 'extremely', 'mysterious', ',', 'even', 'to', 'the', 'point', 'of', 'soundlessness', '.', 'Thereby', 'you', 'can', 'be', 'the', 'director', 'of', 'the', 'opponent', "'s", 'fate', '.']
단어별로 토크나이징(쪼개기)가 잘 된 것을 보실 수 있습니다. #테스트 성공적

네 이렇게 오늘은 Anaconda python에서 spacy 라이브러리 설치와
간단한 토크나이징 테스트까지 해보았습니다.

기회가 된다면 다음에 자연어처리 관련된 포스팅도 작성해보도록 하겠습니다.
지금까지 긴 글 읽어주셔서 감사합니다.

 

블로그 이미지

pychan

딥러닝에 관련된 시행착오, 사소하지만 중요한 것들, 가능한 모든 여정을 담았습니다.

댓글을 달아 주세요

 

안녕하세요! 은공지능 공작소의 파이찬입니다.
오늘은 Python과 함께 사용하는 JAVA의 올바른 설치법
Konlpy 라이브러리 사용 중 나타나는 JvmNotFoundException 에러
해결법에 대해 알아보겠습니다.

 

 

 

 

 

 

 

 

 

 

 

 

1. 문제상황

 

 

 

위의 그림처럼 JvmNotFoundException 에러가 뜨는 상황입니다.
그래서 Konlpy 라이브러리 사용 중 okt 객체 생성이 안되어 문제가 발생했습니다.

원인은 2가지 정도로 추정됩니다.
1. 잘못된 용도 또는 버전의 자바가 설치되어 있을 수 있습니다.
2. 자바 환경변수 설정이 제대로 안 되어 있을 수 있습니다.

저 같은 경우, 1번 원인에 해당하는 문제였습니다.
그래서 환경변수 설정을 해줘도 계속 같은 에러가 발생되었구요.
그래서 자바 설치부터 제대로 다시 해줘야 했습니다.

 

 

 

 

 

 

2. 자바 설치

 

 

 

https://www.oracle.com/technetwork/java/javase/downloads/index.html

 

Java SE - Downloads | Oracle Technology Network | Oracle

Which Java package do I need? Software Developers: JDK (Java SE Development Kit). For Java Developers. Includes a complete JRE plus tools for developing, debugging, and monitoring Java applications. Administrators running applications on a server:  Server

www.oracle.com

위의 사이트에 들어가서 최신 버전의 자바를 받습니다.
지금 19년 07월 27일 기준으로 Java SE 12.0.2가 최신 버전이었습니다.
현재 포스팅은 이 버전으로 작성된 점 참고해 주시면 됩니다.

 

 

 

 

 

라이센스 동의 부분에 체크 후 진행해 주세요.

 

 

 

 

 

파일 경로명을 한 번 체크 해주시길 바랍니다.
파일 경로는 C드라이브의 Program Files로 설정되어야 합니다.
절대 Program Files (x86) 으로 설정이 되면 안됩니다.
이 점 유의해주시면서 진행하시면 설치는 금방 끝납니다.

 

 

 

 

 

 

 

3. 자바 환경변수 설정

 

 

검색창을 열고 '시스템 환경 변수 편집'에 들어갑니다.

 

 

 

 

 

환경변수 버튼을 눌러 들어갑니다.

 

 

 

 

 

새로 만들기 버튼을 눌러 새로운 시스템 변수를 추가해줍니다.

 

 

 

 

 


변수 이름: JAVA_HOME
변수값: C:\Program Files\Java\jdk-12.0.2\bin


위와 같이 설정을 해주시길 바랍니다.
반드시 해당 경로의 bin 폴더 안에 jvm.dll 이라는 파일이 존재하는지
확인 후 진행하시길 바랍니다.

또한 Program File (x86)이 아니라 반드시 Program File으로
경로를 지정해줘야 합니다. 그렇지 않으면 제대로 설치가 되더라도
파이썬의 konlpy 라이브러리에서 자바를 제대로 찾을 수 없게 됩니다.

위의 주의 사항들을 확인하시고,
확인 버튼들을 눌러 변경된 내용들을 저장해 주면
자바 환경변수 설정이 완료가 된 것입니다.

 

 

 

 

 

 

 

4. 마무리

 

 

 

커널을 재시작 후, 다시 실행을 해보면
JvmNotFoundException 에러가 사라진 것을 확인할 수 있습니다.

음.. 약간의 경고가 뜨긴 하지만 동작은 잘 됩니다 ^^;
나중에 기회가 되면 저 거슬리는 분홍 박스를 없애는 방법에 대해서도 포스팅 해보겠습니다.

도움이 되셨으면 좋겠습니다.
지금까지 은공지능 공작소의 파이찬이었습니다. 감사합니다.

 

블로그 이미지

pychan

딥러닝에 관련된 시행착오, 사소하지만 중요한 것들, 가능한 모든 여정을 담았습니다.

댓글을 달아 주세요

안녕하세요. 은공지능 공작소의 파이찬입니다.
오늘은 간단하게 주피터 노트북에서 ipynb 커널을 바꾸는 방법을 알아보겠습니다.
엄청 간단하지만 생각보다 헤매시는 분들이 많더라구요..

 

 

 

 

 

Git 이나 다른 사이트에서 파일을 가져왔을 경우,
파일이 실행이 안되어 골치가 아픈 경우가 있습니다.

그 이유는 바로 해당 파일이 기본 커널로 동작(Python3)하도록 설정이 되어 있거나,
애초에 다른 커널로 동작하도록 세팅되어 있기 때문입니다.

커널마다 설치된 라이브러리나 패키지가 맞지 않아서
발생하는 현상입니다.

 

 

 

 

 

이는 주피터 노트북 안에서 간단하게 해결할 수 있습니다.
① kernel 탭 → ② change kernel -> ③ 자신이 변경하고자 하는 커널 선택

정말 간단하죠?
위의 방법을 통해서 자신이 원하는 커널에서 외부 파일을 동작시킬 수 있습니다.
물론 그 이전에, 자신이 변경하고자 하는 커널 세팅이 완료가 되어 있어야 합니다.

 

 

 

 

2019/07/22 - [딥러닝 공부/설치 및 환경설정] - [Anaconda/window10] Tensorflow 2.0 GPU 시원하게 설치해보자! (visual studio 2017 / cuda toolkit 10.0 / cuDNN 10.0 )

 

[Anaconda/window10] Tensorflow 2.0 GPU 시원하게 설치해보자! (visual studio 2017 / cuda toolkit 10.0 / cuDNN 10.0 )

안녕하세요! 은공지능 공작소의 파이찬입니다. 오늘은 텐서플로 2.0 GPU를 설치해보겠습니다. Anaconda 설치부터 주피터노트북 설정까지 논스톱으로 진행합니다. 프로그램 호환성 때문에 정말 많은 시행착오가 있..

chan-lab.tistory.com

만약, 새로운 커널 추가 방법을 모르시는 분들은 위의 포스팅을 참고해 주세요.
자잘한 설치는 건너뛰시고 2-2, 2-3, 2-7, 2-8 정도 보시면 될 것 같습니다.

 

블로그 이미지

pychan

딥러닝에 관련된 시행착오, 사소하지만 중요한 것들, 가능한 모든 여정을 담았습니다.

댓글을 달아 주세요