python error: The "freeze_support()" line can be omitted if the program is not going to be frozen to produce an executable.
·
Error code 모음/4. Python errors
위 에러는 multiprocessing 을 실행할 때, if __name__ == '__main__': 과 freeze_support( ) 를 사용하지 않고 실행했을 때 나타나는 에러이다. 우선 if __name__ == '__main__' 의 경우에는 이미 실행된 함수가 다른 객체에 할당되어 실행될때, 이전의 내용과 중복되어 실행되는 것을 막아주는 기능을 하는데 중복/반복을 막아 자원이 중복 사용되는 것을 막아주는 함수이다. 그리고 freeze_support( ) 의 경우에는 파이썬 multiprocessing 이 윈도우에서 실행될 경우, 자원이 부족할 경우를 대비해 파일 실행을 위한 자원을 추가해주는 역할을 하는 함수이다 그리고 효율 적인 자원 사용과 중복 방지를 위하여 if __name__ =='_..
Python IDE - VS code 단축키 정리 1
·
언어/Python
파이참만 쓰다가 여러가지로 불편한 점이 있어서 최근 VS 코드로 옮겼는데, 파이참에 익숙해져서 인지 여러므로 익숙해지는데 시간이 걸릴 것 같다. 자주 사용하는 단축키 우선 정리해두어야 겠다. 코드 실행 한꺼번에 실행하기 : Ctrl + F5( 디버깅의 기능도 있다) 한줄식 실행하기 : Ctrl + Enter (실행시키고 싶은 부분의 코드를 드래그한후 해당 키를 누르면 그 부분이 전체가 실행) 다른 파일로 옮기기 : Ctrl + F6 - 해당 코드를 실행시키면 다른 파일로 옮겨갈 수 있다 디버깅 : F10 - 디버깅은 시작파일로 등록된 파일만 계속 실행이 되기 때문에 이점이 좀 불편하다. - 파이참은.. 그냥 다 되었었는데.. 디버깅을 하려면 파일을 새로 만들고 그 파일을 바탕으로 계속 실행이 되므로 주의..
Introducing python 참고 개념 : multiprocessing
·
언어/Python
싱글 머신에서 다수의 작업을 가능한 한 빠르게 처리하고 싶을 때, 이들을 독립적으로 만들어 처리하는 작업 멀티 프로세싱을 활용하면 복잡하고 시간이 걸리는 작업을 벼롣의 프로세스를 생성 후 병렬처리해서 보다 빠른 응답처리 속도를 기대할 수 있는 장점이 있다. 최근들어 대용량의 빅데이터 분석 및 예측 등의 머신 러닝을 지원하는 다양한 패키지에서 대부분 멀티 프로세싱을 활용하여 멀티코어의 CPU의 장점을 극대화하고 빠른 처리를 지원하고 있다. 하지만, 멀티프로세싱은 오버해드의 증가 및 메모리 사용률이 높아지는 단점도 있다. 대표적인 파이썬의 multiprocessing 라이브러리는 Pool 객체가 있다. 아래 링크들을 통해 자세한 내용을 이해할 수가 있다. 첫번째 링크는 multiprocessing 에 대한 ..
python error L “TypeError: __str__ returned non-string” but still prints to output?
·
Error code 모음/4. Python errors
__str__ 는 특수 메서드 중 하나입니다. class Element(): def __init__(self, name, symbol, number): self.name = name self.symbol = symbol self.number = number def __str__(self): print("name:{0} symbole:{1} number:{2}".format(self.name, self.symbol, self.number)) 특수 메서드는 print 가 아닌 return 으로 값을 받아줘야 에러없이 출력이 되는데 위 에어는 print( ) 로 값을 받아서 생긴 에러였네요 print( ) --> return 으로 해야합니다. class Element(): def __init__(self, n..
python error : __init__() missing 1 required positional argument:
·
Error code 모음/4. Python errors
아... 너무 쪽팔리는 에러를 만났네여.. 함수를 만들어 놓고도.. 안에 값을 넣지 않아서.. 저런 에러를 만나고 30분을 고민햇다니..!!!으!!! 일단 에러를 낸것이니 기록! class Thing(): def __init__(self, example): self.example = example thin = Thing(#이 부분이 문제였음) 위에 class 를 만들어주고 이를 thin 이라는 객체에 담아주었는데 __init__ 라는 초기화 함수를 써주었는데요. 처음에는 이해가 안되었지만, 이 에러를 풀고 원인을 공부하는 과정에서 이 함수를 왜 쓰는지 짐작을 할 수 있게 된 것 같네요 __init__ 는 초기화 함수라고 해서 객체를 만들때마다 클래스를 초기화해서 새것처럼 사용할 수 있게 만들어줍니다.. ..
RASA 오픈소스 를 통해 간단한 챗봇 구축하고 훈련하기 04
·
프로젝트, 인강 그리고 책/RASA chatbot Project
두번째 포스트까지는 기본 챗봇을 만들 수 있는 방법을 알려드렸습니다. 이번 포스트는 두번째 포스트를 기반으로 챗봇을 조금이나마 한단계 업그레이드 할 수 있는 단계로 반드시, 따라하지 않으셔도 됩니다. 챗봇에서는 slot filling(슬롯 채우기)라는 기능이 있습니다. 슬롯 채우기는 몇개의 정보를 알아내어야 챗봇이 답을 줄 수 있을 때, 그 몇개의 정보(slot)들을 다 채워 넣는 것(filling)으로 모든 슬롯이 다 채워질때까지 질문을 하는 것입니다 챗봇은 슬롯에 필요한 정보들을 다 채우면 사용자가 원하는 정보를 출력해 줄수 있습니다. rasa 에는 3가지 정도의 슬롯 필링이 있다고 알고 있는데요 오늘은 그 중 하나인 action.py 파일을 활용하여 슬롯 채우기를 실행 할 수 있는 방법을 하려고 합..
RASA 오픈소스 를 통해 간단한 챗봇 구축하고 훈련하기 03
·
프로젝트, 인강 그리고 책/RASA chatbot Project
저번 포스트까지는 기본 챗봇을 만들 수 있는 방법을 알려드렸습니다. 이번 포스트는 저번 포스트를 기반으로 챗봇을 조금이나마 한단계 업그레이드 할 수 있는 단계로 반드시, 따라하지 않으셔도 됩니다. Response Selector NLU component 는 사람들끼리 간단하게 할 수 있는 일상 대화와 자주 물어보는 간단한 FAQ 관련 메시지들을 처리하기 위해 사용되는 RASA 챗봇의 요소 중 하나인데요. 이 기능을 사용하면 챗봇과 유저간에 일어날 수 있는 수많은일상적인 대화들과 FAQ 들을 처리하기 위한 스토리들과 인텐트들을 다 만들지 않고 간편하게 해결할 수 있어서 괜찮은 기능이라고 생각해요. 유저들은 챗봇에게 이런 저런 질문이나 시시콜콜한 이야기등을 하는데요. 라사 챗봇은 그렇게 들어오는 인텐트들을 ..
RASA 오픈소스 를 통해 간단한 챗봇 구축하고 훈련하기 02
·
프로젝트, 인강 그리고 책/RASA chatbot Project
이번에는 간단하게 자신이 원하는 챗봇을 만들어보겠습니다. 일단 저의 경우에는 챗봇을 구축하면서 RASA 오픈 소스를 이해하는 것에 방점을 두었기 때문에 빠르게 챗봇에 대한 뼈대를 구축하고자 했습니다 우선, RASA 를 통해 어떻게 챗봇을 만드는지 과정을 간단하게 설명해드리겠습니다. 간단하게 개인적으로 유튜브에 업로드 해놓은 동영상을 참고해주시기 부탁드릴게요 (채널홍보가 아니며, 추후에 저도 접근이 쉬운 플랫폼인 유튜브 채널을 선택하게 되었어요!) https://youtu.be/-eeshd7p0FQ 챗봇을 만드는 법에 대해서 제가 직접 간단하게 촬영해본 영상입니다 ^^ㅎㅎ 먼저, stories.md 파일을 열어서 만들고 싶은 스토리를 설정을 해주세요! 챗봇의 경우에는 '내가 어떻게 이야기를 진행시킬 것인가..
RASA 오픈소스 를 통해 간단한 챗봇 구축하고 훈련하기 01
·
프로젝트, 인강 그리고 책/RASA chatbot Project
어떻게 설치를 할까? 전반적으로는 유저 가이드를 참고해가면서 설치하면 쉽게 할 수 있는 편입니다. 하지만..영어가 귀찮다는 이유로 다른 곳을 찾아서 할 경우 더욱 미궁으로 빠질 수 있으니 주의 할 것 친절하지가 않은 것 같아서.. 주의 부탁드릴게요! RASA 사이트의 경우에도 설치 방법이라던지 버전 등등이 빠르게 변하는 편이기 때문에. 유저 가이드를 참고하면서 공부할 때 약간의 주의가 필요한 것 같아요! --> 지극히 개인적인 경험...얼마전에 다시 설치하려고 유저가이드 들어가봣더니..설치방법이 바뀌어 있었네요 ㅠㅠ 설치를 위한 GUIDE SITE 는 아래 의 링크를 참고해주세요! User guide 사이트 : https://rasa.com/docs/rasa/user-guide/installation/ ..
파이썬 에러 : 'tuple' object has no attribute 'get'
·
Error code 모음/4. Python errors
해당 에러같은 경우에는 튜플을 받지 않는 함수를 만들거나 일부 라이브러리에서 발생할 수 있는 에러입니다. 이 에러가 뜨면.. 내가 코드를 친 어딘가에 튜플을 만들어 주었구나 라고 의심을 하시고 코드를 잘 살펴보는 게 중요한데요... # 튜플을 만들수 있는 방법 2가지 tuple_01 = (1,2,3) tuple_02 = 1,2,3, # 파이썬은 ( )를 안하고도 튜플을 만들 수 있기 때문에 # ( )를 안했는데 뒤에 ' , '를 한 부분이 있다면 이를 튜플로 # 인식할 가능성이 좀 있으니 주의해야합니다 tuple_02와 같이 뒤에 ' , '를 한경우 파이썬이 순간 이를 튜플로 인식을 해서 벌어지는 에러일 수 도 있습니다. 한번 자신이 친 코드 뒤에 버려진 ' , ' 이 없나 살펴보면 좋을 것 같습니다! ..