게시글
질문&답변
퍼널 질문드립니다.
안녕하십니까, 추가적인 패턴이 정해져 있다면 퍼널을 구하는 것은 크게 어렵지 않습니다. 그러니까, 로그인 > 장바구니 >구매 외에, 로그인 > 구매 또는 로그인 > 상품 서치 > 장바구니 > 구매 와 같이 추가적인 패턴이 정해져 있으면 됩니다. 근데 질문의 요지가 패턴이 정해지지는 않고, 구매로 이어지는 모든 패턴을 찾아서 퍼널을 구하는 것을 의미한다면 불가능한건 아니지만 SQL로 작업시 매우 복잡할 수 있습니다. 감사합니다.
- 0
- 1
- 20
질문&답변
YOLO 학습
안녕하십니까, 기존 데이터 세트가 있고, 여기에 Detect 하려는 오브젝트가 있는데, 추가적인 다른 Object도 Detect하려면 기존 데이터 세트와 새로운 Object를 가지는 데이터 세트를 모두 학습해야 합니다. 그러니까, 새로운 데이터셋을 추가해서 학습을 시키려면 이렇게 합친 데이터셋을 다시 학습을 해야합니다(a, b, c, d를 탐지할 수 있게 학습을 하고 추가적으로 ㄱ, ㄴ, ㄷ, ㄹ도 탐지할 수 있게 데이터를 추가해서 총 a, b, c, d, ㄱ, ㄴ, ㄷ, ㄹ을 모두 탐지 하려면)데이터가 너무 커서 학습이 느리다면 전체 2TB에서 10%인 200GB만 학습하고 성능을 모니터링 해보시면 어떨까 싶습니다. 근데 2TB면 매우 큰 데이터 세트인데, 만약에 이미지 사이즈가 커서 한장에 수십 MB라 그렇다면 이미지 사이즈를 어느정도 줄이거나 이미지 압축을 다른 방식으로 적용해서 저장 용량을 줄인 상태에서 학습을 수행해 보시면 어떨까 싶습니다. 그리고 마지막 출력 계층만 새롭게 학습을 하는 방법은 기존 데이터셋에 대한 성능이 떨어질 수 있어서 좋은 선택은 아닙니다. 감사합니다.
- 0
- 2
- 34
질문&답변
갑자기 데이터 프레임이 되는 이유
안녕하십니까,질문을 제가 잘 이해했나 모르겠습니다. Jupyter Notebook은 print() 함수를 사용하지 않고 그냥 DataFrame 객체만 적어주게 되면, DataFrame을 Jupyter Notebook에 기본 지정된 스타일링을 적용하여 표현하게 됩니다.그래서 print(new_value_counts_01.rename(...)) 하지 않고 그냥 new_value_counts_01.rename(...) 하게 되면 DataFrame 스타일링이 되어서 출력되게 됩니다.원하시는 답변이 아니면, 다시 글 부탁드립니다.감사합니다.
- 0
- 2
- 20
질문&답변
학습 질문입니다.
안녕하십니까, 말씀하신대로 self.ann_file이나 load_annotations()의 인자로 들어가는 ann_file은 최종적으로 같은 file path입니다. 그럼에도 불구하고 load_annotations() 메소드를 ann_file을 입력 받도록 설계한 이유는 명시적으로 해당 메소드가 file path를 받는다라는 것을 확실하게 하기 위해서라고 생각됩니다.그리고 각 변수가 할당되는 시점은 CustomDataset 클래스를 정의한 아래 소스코드를 참조해 보시면 https://mmdetection.readthedocs.io/en/v2.12.0/_modules/mmdet/datasets/custom.html__init__() 생성 메소드에서 self.data_infos = self.load_annotations(self.ann_file)이 되고 Custom Dataset 생성 시 self.ann_file이 생성자로 만들어 지고, 나중에 load_annotations() 메소드의 인자로 들어감을 알 수 있습니다. 감사합니다.
- 0
- 2
- 25
질문&답변
acks 1 이면 비동기가 아니지 않나요?!
안녕하십니까, 좋은 질문 감사합니다. 비슷한 질문에 대한 답변이 있어서 먼저 해당 답변 URL 보내드립니다. https://www.inflearn.com/community/questions/1146961/%ED%94%84%EB%A1%9C%EB%93%80%EC%84%9C-%EC%A0%84%EC%86%A1%EA%B3%BC-ack-%EA%B4%80%EA%B3%84%EC%97%90-%EB%8C%80%ED%95%B4-%EC%A7%88%EB%AC%B8%EC%9E%88%EC%8A%B5%EB%8B%88%EB%8B%A4내용은 아래와 같습니다. 읽어 보시고, 원하시는 답변이 아니시면 다시 글 부탁드립니다. ==========================================================sync 방식, 즉 producer.send().get() 과 async 방식(callback 적용)에 따라 acks=0/1 이 살짝 달라지는 부분이 있습니다.강의에서 설명드리는 부분은 sync 방식에서 acks 적용이라고 보시면 될 것 같습니다.먼저 sync 방식은 send()가 return받는 future 객체가 만들어져서 get()이 반환될때까지 wait가 되면서 순차적인 동기 방식을 유지하게 되는데, 이게 acks=0 일 경우는 get() 이 broker로 부터 ack를 기다리지 않고 바로 반환이 됩니다. 순차적으로는 보내는데, acks를 기다리지 않고 보내기 때문에 해당 메시지가 유실될 수 있습니다.sync 방식에서 acks=1 이면 acks가 와서 get()이 반환될 때까지 기다리게 됩니다. acks가 일정 기간동안 오지 않으면 다시 해당 메시지를 보내게 됩니다.async 방식에서 acks=0은 sync 방식과 거의 동일합니다. 다만 acks를 받으면 Callback이 수행된다는 점만 다릅니다.async 방식에서 acks=1은 조금 헷갈리는 부분이 있습니다. async 방식에서 acks=1 인 경우는, 이전 메시지의 acks를 받지 않았지만, 다음 메시지를 보낼 수 있습니다. 즉 비 순차적으로 메시지를 보낼 수 있습니다. 하지만 이전 메시지의 acks가 특정 기간동안 오지 않는다면 해당 메시지를 다시 보냅니다. 때문에 중복이 발생할 가능성이 있습니다.강의에서는 acks=1인 경우는 sync 방식으로 보낸 설명으로 생각해 주시면 될 것 같습니다. async 방식의 경우는 메시지를 보내고, acks를 기다리지 않고, 다음 메시지를 보내지만, acks가 오지 않는 경우 해당 메시지를 다시 보내게 됩니다.생각해 보니, 이 설명을 원래 강의 기획에서는 하려고 했었는데, 어쩌다 보니 빠진 것 같군요. 아마 이 설명을 하면 수강생 분들이 많이 헷갈릴 것 같아서 쉽게 결정을 못하다가 잊어버리고 넘어간 것 같습니다.
- 0
- 2
- 25
질문&답변
Producer의 메시지 비동기화 전송 구현 강좌 내용 중 질문
안녕하십니까, 네, 맞습니다. try catch로 error를 잡는 것과 별개로 메시지 재 전송은 producer가 내부적으로 수행하는 것이기 때문에 사용자 코드에 작성해서는 안됩니다. producer는 전송 오류 발생 시 설정값으로 정해진 재시도 횟수만큼 지속적으로 시도하다가, 재 시도 횟수가 넘어갈 경우 exception을 사용자 코드로 넘겨 주게 됩니다. 다음 섹션의 Producer의 전송/재전송 내부 메커니즘 및 재 전송 동작 관련 주요 파라미터의 이해와Producer의 재전송 관련 주요 파라미터 설정에 따른 동작 실습 영상에서 보다 자세히 말씀드리오니 참고하시면 도움이 될 것 입니다. 감사합니다.
- 0
- 2
- 20
질문&답변
학습 질문입니다.
안녕하십니까, 네, 비슷합니다. 다만 라이브러리 보다는 프레임워크라고 보면 좋을 것 같습니다. 다양한 Object Detection 모델의 학습과 예측을 통일된 API/함수/모듈로 제공하는 프레임워크라고 생각하면 됩니다. 감사합니다.
- 0
- 2
- 31
질문&답변
Buffer Cache를 통한 데이터 Access 에서 DBA 정보를 어떻게 알아내는지 궁금합니다.
안녕하십니까, 해당 영상은 buffer cache access 메커니즘에 대한 설명이라 full scan 또는 index 이용 시 데이터 블럭을 access하는 전반적인 방식을 다 언급 드리지 않고 간단하게 Data dictionary를 이용한다고 말씀드린 것입니다. full scan 시 해당 table의 segment를 Data Dictionary에서 찾고, Segment의 Header에서 첫번째 DBA와 Extent Map과 High Water Mark를 기반으로 테이블을 스캔하면서 해당 조건의 block을 찾는 다는 이야기를 그냥 퉁~ 쳐서 Data Dictionary를 이용한다고 기재 한 것입니다. 물론 해당 테이블에 인덱스가 있다면 rowid를 기반으로 해당 rowid를 DBA로 변경해서 찾는 방식도 해당되기 때문에 Data Dictionary를 이용한다는 설명은 오해의 소지가 있을 수 있지만, 강의 진행상 축약에서 영상에서 언급 드리는 걸로 이해 부탁드립니다. 감사합니다.
- 0
- 2
- 22
질문&답변
자문자답: 데이터 누락된다고 하시는 분 참고하세요.
ㅎㅎ, AI 인턴도 가르쳐 주시고 감사합니다. 좋은 정보 감사드리고, 저도 다시 한번 확인해 보겠습니다.
- 0
- 2
- 49
질문&답변
random i/o와 full scan 문제 질문
안녕하십니까,random I/O로 십만 블록을 Access하면 시간이 크게 소모 됩니다. Random I/O는 1 block시 읽어 오는데 시간이 많이 걸립니다. random I/O 1,000 Block, Full scan으로 십만 블록을 읽는 다면 random I/O가 더 빠를 수 있지만, random I/O 가 십만 블록으로 늘어나면 I/O 시간이 기하 급수적으로 늘어 납니다. 하지만 Full Scan은 십만 블록에서 천만 블록으로 늘어나도 random I/O의 시간만큼 기하급수적으로 늘어나지 않습니다. 그래서 random I/O 십만 블록을 읽는 것 보다 Full scan 천만 블럭을 읽는 것이 더 수행 시간이 빠릅니다.감사합니다.
- 0
- 3
- 25