5월, 2018의 게시물 표시

라즈베리3에 텐서플로 설치 & Python 3.6 설치

https://www.raspberrypi.org/downloads/raspberry-pi-desktop/ 를 통해 데스크탑 버전을 다운로드 후  win32를 활용하여 파이 sd카드에 이미지를 구워준다. samjabrahams의 github에 나와있는 부분중에서 다운로드 받아야하는 파일을 약간 수정해 준다.  원래코드 (Not available) : wget https://github.com/samjabrahams/tensorflow-on-raspberry-pi/releases/download/v1.1.0/tensorflow-1.1.0-cp34-cp34m-linux_armv7l.whl sudo pip3 install tensorflow-1.1.0-cp34-cp34m-linux_armv7l.whl   수정된 코드 (Revised) : wget https://github.com/samjabrahams/tensorflow-on-raspberry-pi/releases/download/v0.11.0/tensorflow-0.11.0-py3-none-any.whl sudo pip3 install tensorflow-0.11.0-py3-none-any.whl   python3를 실행하여 import tensorflow를 돌려본다 완성!   ** 이 이전에 Python 3.6 으로 업그레이드를 시켜주자 라즈베리파이의 default는 3.5니까 문제가 생기는지도 모르겠다.  $ wget https://www.python.org/ftp/python/3.6.5/Python-3.6.5.tar.xz $ tar xf Python-3.6.5.tar.xz $ cd Python-3.6.5 $ ./configure $ make $ sudo make altinstall 위 코드들을 차례로 실행 후에  실행창에 python3.6 을 쳐 넣어서 관련 버전이 나오는지 확인한다  제대로 설치되었다면 pip upgrade 를 진행해야 한다. $ curl h

Tensorflow Aduio Recognition 기행 2

이미지
Audio Recognition 과 관련된 모든 튜토리얼을 마쳤다. 이젠 실시간 음성인식을 구현할 수도 있다. 그런데 주어진 데이터에 비해 인식할 수 있는 단어의 개수가 턱없이 모자르다. 이유를 확인해보니, 역시 알 수 없는 이유로 12개의 단어를 대상으로만 학습을 시킨 모양이다. 이 confusion matrix에 등록이 되어 있는, 'silence'를 포함하는 총 12개의 단어만 인식할 수 있다는 이야기다. 이 단어들은 conv_labels.txt 에 등록이 되어있다. 그러면 conv_labels 의 내용을 수정해서, 남은 단어들-예를 들면 happy, house, one~nine 등등을 추가해주면 되는 것 아닌가? 실행해보았더니 그렇게 쉽게 해결되는 문제는 아니었다.  질문자가 올렸듯이 따로 원하는 단어들을 대상으로 학습을 시켜줘야 하고, 이것을 바탕으로 분석 결과를 얻어내야 하는 모양이다. 더 큰 문제는 질문자가 이 코드를 돌리다가 에러를 발견하여 질문을 올렸다는 사실이다. 질문의 내용에 따르면 오디오 데이터 중에는 1초보다 짧은 것들이 포함되어 있는 모양이다. 튜토리얼 코드는 학습자료가 정확히 1초일 때만 학습가능하고, 그보다 짧을 경우에는 학습이 불가능하다. 애초에 왜 1초짜리 학습자료를 만들지 않았냐 하면 이 코드가 다음과 같은 링크를 통해 사용자의 참여를 바탕으로 데이터를 수집했기 때문이다.  https://aiyprojects.withgoogle.com/open_speech_recording 분명히 참여한 사용자들 중에는 1초보다 길거나 짧게 단어를 말한 사람들이 있을 것이고, 1초보다 길 경우 길이를 조정한 모양이지만 1초보다 짧은 경우에는 데이터 길이 수정을 따로 거치지 않은 모양이다. 실제로, 64000여 개의 학습자료 중에서 58000여개 만이 1초 길이이고, 이외는 1초보다 짧다고 한다. 그래서 원하는 단어들을 모두 학습시키는 과정에서 1초보다 짧은 단어를 사용하게 되고, 오류가 발생하는 것