본문 바로가기

강의/Udacity ML

(42)
[Python] import Error : cannot import name module 에러 해결 Jupyter notebook 실습 중 해당 에러가 발생했다. 코드에도 문제가 없었고, 파일 명에도 오타가 없었다. ipython 재설치를 통해 해결했다. pip uninstall -y ipython prompt_toolkit pip install -ipython 참고 https://github.com/ipython/ipython/issues/11270 ImportError: cannot import name 'generator_to_async_generator' · Issue #11270 · ipython/ipython When I run Ipython on Ubuntu18.04,I got this ImportError. github.com
6.2 객체지향 프로그래밍 객체는 특성과 동작에 의해 정의된다. 영어 문법의 특징과 행동 영어 문법의 측면에서 특징과 행동을 생각할 수 있다. 특성은 명사에 해당하고 행동은 동사에 해당한다. 객체지향 프로그래밍 관련 단어 클래스 메소드와 속성으로 구성된 청사진 객체 클래스의 인스턴스. 추상적일 수 있다. 속성 설명자 또는 특성. 3인치, 대형 등의 특정 값을 취할 수 있다. 메소드 클래스나 객체가 수행할 수 있는 작업 OOP 객체 지향 프로그래밍의 약어 캡슐화 객체 지향 프로그래밍의 기본 아이디어 중 하나는 캡슐화이다. 함수와 데이터를 모두 단일 엔티티로 결합할 수 있다. 객체 지향 프로그래밍에서 클래스라고 부른다. 캡슐화를 사용하면 기계 학습 알고리즘의 구현을 숨기는 scikit-learn 패키지와 마찬가지로 구현 세부 정보를 ..
5.11 코드 리뷰와 고려할 점, 코드 검토를 위한 팁 코드 리뷰는 최고의 프로그래밍 프랙티스를 홍보하고 프로덕션용 코드를 준비할 수 있는 팀 구성원 모두에게 유용하다. 코드 리뷰에서 무엇을 찾아야 하는지와 코드 리뷰를 수행하는 방법에 대한 몇 가지 팁이 있다. 코드가 깨끗하고 모듈화되었는가? - 코드가 이해하기 쉬운가? - 의미 있는 이름과 공백을 적절히 사용하였는가? - 중복된 코드가 있는가? - 다른 추상 레이어를 제공할 수 있는가? - 각 함수가 적절히 모듈화 되었는가? - 각 함수 또는 모듈이 너무 길지 않은가? 코드가 효율적인가? - 벡터화할 수 있는 루프 또는 단계가 있는가? - 더 나은 자료구조를 사용할 수 있는가? - 필요한 계산 횟수를 최소화할 수 있는가? - 생성자 또는 멀티프로세싱을 사용하여 최적화할 수 있는가? 문서가 유효한가? - 인..
5.8 로그와 로그 메시지 로깅 (Logging) 로깅은 프로그램을 실행하는 동안 발생하는 이벤트를 이해하는 데 중요하다. 예를 들어 모델을 밤새 실행했는데 다음 날 아침 결과가 예상과 다를 경우 로그 메시지를 통해 발생한 결과에 대한 컨텍스트를 더 잘 이해할 수 있다. 로그 메시지 로깅은 소프트웨어를 실행하는 동안 발생한 이벤트를 설명하기 위해 메시지를 기록하는 프로세스이다. 몇 가지 예를 보고 좋은 로그 메시지 작성을 위한 팁을 소개한다. 팁: 전문적이고 명확해야 한다. Bad: Hmmm... this isn't working??? Bad: idk.... :( Good: Couldn't parse file. 팁: 간결하고 일반적인 대문자를 사용한다. Bad: Start Product Recommendation Process B..
5.7 테스트 중심의 개발 및 데이터 과학 테스트 중심 개발 테스트 중인 코드를 작성하기 전에 테스트를 작성한다. 처음에는 테스트가 실패하며, 테스트를 통과하면 작업 구현이 완료된다. 테스트에서는 기능을 사용하기 전에 다양한 시나리오와 에지 케이스가 있는지 확인할 수 있다. 기능 구현을 시작할 때 테스트를 실행하여 기능을 조정할 때 작동 여부에 대한 즉각적인 피드백을 얻을 수 있다. 코드를 리팩터링하거나 추가할 때 테스트를 통해 코드를 변경하는 동안 나머지 코드가 손상되지 않았는지 확인할 수 있다. 테스트를 통해 하드웨어 및 시간과 같은 외부 매개 변수에 관계없이 기능 동작을 반복할 수 있는지 확인할 수도 있다. 데이터 과학을 위한 테스트 주도 개발은 비교적 새로운 것이며 많은 실험과 혁신을 경험하고 있다. 다음 리소스를 탐색하여 자세히 알아볼 ..
5.2 테스팅 & 도구 테스팅 배포 전에 코드를 테스트해야 한다. 큰 영향을 미치기 전에 오류와 잘못된 결론을 파악하는 데 도움이 된다. 오늘날 고용주들은 자신의 코드를 테스트하는 것을 포함하는 산업 환경에 적합한 코드를 준비할 수 있는 기술을 갖춘 데이터 과학자를 찾고 있습니다. 테스팅과 데이터 과학 데이터 과학에서 발생할 수 있는 문제가 항상 쉽게 감지되는 것은 아니다. 값이 잘못 인코딩되거나, 기능이 부적절하게 사용되거나, 예상치 못한 데이터 손상 가정이 있을 수 있다. 이러한 오류를 탐지하려면 코드 품질뿐만 아니라 분석 품질과 정확성도 확인해야 한다. 예상치 못한 놀라움을 피하고 결과에 자신감을 가지려면 적절한 테스트가 필요하다. TDD(Test-driven Development): 작업을 실행하기 위한 코드를 작성하기..
4.24 모델 버전 관리 이전 예에서는 각 커밋이 해당 모델에 대한 점수로 문서화되어 있음을 알 수 있었다. 이것은 모델 버전을 추적하는 데 도움이 되는 간단한 방법이다. 데이터 과학의 버전 제어는 까다로울 수 있다. 대량의 데이터, 모델 버전, 시드 및 하이퍼 파라미터와 같이 추적하기 어려운 부분이 많기 때문이다. ML 모델의 버전 관리 기계 학습 작업(현재 유행어 패턴 xxOps에서는 mlOps라고 함)은 기존 소프트웨어 개발 작업(devOps)과는 상당히 다르다. 그 이유 중 하나는 ML 실험에서 코드(작은 일반 파일) 외에도 큰 데이터 집합과 모델 아티팩트가 요구되기 때문이다. 1. ML 모델은 확장성, 보안, 가용성, 사실상 무제한의 스토리지 공간으로 지속된다. 2. ML 모델은 버전 제어 하에 있다. 즉, 특정 버전의..
4.23 VC 시나리오 #3 1단계: 문서 분기에 대한 변경 사항을 적용하고 개발 분기로 전환한 다음 이전에 친구 그룹 기능에 대해 병합한 변경 사항을 포함하여 이 개발 분기에 대한 클라우드에서 최신 변경 사항을 가져온다. - 변경사항 커밋 - develop으로 전환 - 최신 변경사항을 Pull 2단계: Andrew는 자신의 문서 분기를 로컬 리포지토리의 develop branch에 병합한 다음 변경 사항을 위로 푸시하여 원격 리포지토리의 develop branch를 업데이트한다. - 작업한 브랜치를 develop으로 병합한다. - 오리진 브랜치로 푸시한다. 3단계: 팀에서 귀하의 작업과 Andrew의 작업을 검토한 후 개발 지점의 업데이트를 마스터 지점으로 병합한다. 그런 다음 변경 사항을 원격 리포지토리의 마스터 분기에 푸시합니..

LIST