선생님 안녕하세요. 항상 좋은 강의 잘 듣고 있습니다. 두가지 질문이 있습니다. 선생님께서 18:21에 좋은 성능을 보여준 이유로 imagenet의 가중치를 사용해서라고 말씀 하셨는데, imagenet의 훈련된 가중치는 애초에 cat and dog와 완전히 다른(imagenet에 많은 강아지와 고양이 이미지가 있다고 하더라도) 데이터로 만들어진 결과인데, cat and dog 데이터 셋에 적용해도 높은 정확도가 나오는 이유가 궁금합니다. 그리고, 개인적으로 인도 새 25종을 분류하는 모델을 만들고 있는데 그렇다면 강의와 같이 imagenet의 가중치를 가져와서 훈련하는 것이 아무것도 없는? 가중치로 훈련하는 것보다 좋은 성능 만들어 낼까요?
안녕하세요 colab을 이용하던 도중에 갑자기 이상한 현상이 생겨서 질문 남깁니다! 영어를 사용하면 별 문제가 없는데 이상하게 한글만 사용하면 글씨색도 변하고 위의 사진 처럼 셀의 화면이 내려가거나 확대 됩니다. 주석뿐만 아니라 코드에도 한글을 넣으면 똑같은 현상이 발생합니다. 작성시에는 화면이 보이지 않지만 작성후 방향키나 공백을 넣으면 다시 원래 화면으로 돌아옵니다. ㅠㅠㅠㅠ 너무 거슬려서 주석을 작성 할 수 가 없습니다ㅠㅠㅠ 해결책이 있을까요 이것저것 옵션 다 만져봤지만 해결이 안돼서 여쭙니다.
설계독학맛비's 실전 AI HW 설계를 위한 바이블, CNN 연산 완전정복 (Verilog HDL + FPGA 를 이용한 가속기 실습)
안녕하세요 맛비님! Lab2 exam부분 진행하면서 simulation을 돌릴 때 simulation이 멈추는 문제가 계속 발생합니다.. 처음에는 cnn_kernel module이 가장 하위 module이라 이 module이 문제 없이 동작하게 설계하면 다른 module들도 비슷하게 하면 될 것 같아서 제가 따로 testbench 파일을 만들어서 동작을 확인해보려 했는데, input valid 신호가 들어오기 직전 부분에서 자꾸 simulation이 멈춰버립니다... 그래서 제가 구글링을 해봤는데 testbench 작성이 bad 해서 그럴 수 있다는 얘기 정도밖에 안나오네요...(testbench 작성은 지금까지 제공해주신 testbench 파일과 거의 비슷한 flow로 reset_n을 주고 i_in_valid 를 high로 주고 output관찰하려고 했던 단순한 testbench였습니다) 그래서 나머지 모듈도 모두 코딩을 하고 맛비님이 제공해주신 run.py 를 통해서 제대로 동작하는지 simulation 해보려고 했는데, 또 simulation이 멈춰버립니다.. 여기서 더 진행이 안됩니다.. waveform 옵션이 있어서 그런가 하고 그냥 waveform gui없이 돌려봐도 Start이후에 진행이 안됩니다... 강의 중에 3D이상의 array 선언을 하면 simulation time에 문제가 있어 vector 선언 후 Indexed part select를 통해 설계하셨다고 하셨는데, 저도 제공해 주신 frame안에서 그냥 TODO 부분만 Indexed part select를 통해서 코딩한 건데 왜 이런 문제가 발생하는지 잘 모르겠습니다. 제가 작성한 code에 문제가 있으면 simulation 결과를 보고 수정해서 정상적으로 동작하게 하고 싶은데 simulation이 완료가 안되니 어떻게 해야 할지 모르겠습니다... Matbi님의 lab2_solve 부분을 잠깐 확인을 했는데 크게 다르게 작성하지 않은 것 같은데 lab2_solve에서 run.py를 실행해보면 정상적으로 결과가 나옵니다. Verilog HDL이랑 FPGA강의를 수강해오면서 simulation이 멈춰서 디버깅을 못하는 경우는 없었는데 simulation이 멈춰버리니까 어떻게 디버깅을 해서 진행을 해야 할지 정말 모르겠습니다... 이럴 때는 어떻게 접근해야 하는지 여쭤보고 싶습니다. 긴 글 읽어주셔서 감사합니다!
@ManyToOne @JoinColumn(name = "parent_id") private Category parent; @OneToMany(mappedBy = "parent") private List<Category> child = new ArrayList<>(); 부모와 자식을 이렇게 설정해준다는데, 부모를 Many To One 자식을 One To Many 로 해주는게 이해가 안갑니다. 왜 이렇게 연관관계를 설정해 줘야 하는건가요?
설계독학맛비's 실전 AI HW 설계를 위한 바이블, CNN 연산 완전정복 (Verilog HDL + FPGA 를 이용한 가속기 실습)
안녕하세요 맛비님. AI HW 6장 강의를 들으면서 MAC연산량 관련하여 의문점이 생겨서 질문 드립니다. https://www.inflearn.com/questions/735204/%EC%95%88%EB%85%95%ED%95%98%EC%84%B8%EC%9A%94-%EC%B1%95%ED%84%B06-7%EC%97%90-%EB%8C%80%ED%95%9C-%EC%A7%88%EB%AC%B8%EC%9E%85%EB%8B%88%EB%8B%A4 (관련 질문글 링크) 1. 강의에서는 weight 수를 "kernel의 sample수"라고 하셨는데, 위 질문 답변의 A2에서 처럼 정확히는 Convolution layer에서의 weigth 수는 "kernel의 sample수 * Output channel 수"가 맞지 않나요? 즉, OCH :output channel수 * (ICH * Kx * Ky : Kerner의 sample 수) 2. Convolution layer에서의 MAC수를 계산할 때는 Kernel size * Input Channel * Output Channel 을 한 게 output feature map의 한 point(1*1*OCH size)에 필요한 연산수 이기 때문에 위 질문 답변에서의 A1.하나의 layer 에서의 MAC 량 = OCH* ICH * KX * KY이 아니라 Kernel size * Input Channel * Output Channel* Output Feature map Size를 하여 하나의 layer 에서의 MAC 량 = OCH * ICH * KX * KY * (Output Feature Map size) 를 해줘야 맞는게 아닌가 싶습니다. 3. AI HW 6장의 교안에 LeNet-5 Network구현에 필요한 MAC연산수가 341k라고 되어있는데, 첫 Conv layer에 필요한 MAC연산은 (2번이 맞다면) 5*5*1*6*28*28 = 117,600이고 두 번째 Conv layer에 필요한 MAC연산은 5*5*6*16*10*10 = 240,000으로 두 개의 Conv Layer에서의 MAC연산량만 해도 357.6k로 341k를 넘는데 Fully Connected Layer에서의 MAC연산량을 더하면 더 커질 것이라 생각하는데 MAC연산량이 341k가 맞나요?? 정확한 값을 알고 싶습니다. 117.6k+240k+20*84+84*10 = 368.52k가 맞나요? 구글링해도 MAC수에 대한 자료는 잘 안나와서요.. 3-1. Fully Connected Layer가 2개라고 하시고 C5-F6에 하나, F6-OUTPUT에 하나 해서 두 개라고 하셨는데, 검색을 해보니 F6-OUTPUT은 Gaussian connected layer라고 fully connected layer가 아니라고 하는데, 뭐가 맞는건지 잘 모르겠습니다.. S4-C5/ C5-F6가 두 개의 FC layer인건가요? 4. HW engineer라면 연산량을 잘 파악할 수 있어야 된다고 하셨기에, Network Model을 보고 Weight와 MAC연산수를 잘 파악할 수 있어야 될 것 같다고 생각해서 정리를 해보았는데 FC Layer에서의 Weight = Edge의 개수 = Input Node * Output Node FC Layer에서의 MAC = Weight와 동일 Conv Layer에서의 Weight = "kernel의 sample수 * Output channel 수" = OCH *ICH * Ky * Kx Conv Layer에서의 MAC = (Output Feature Map 의 Size) * Weight 수 = (Output Feature Map 의 Size) * OCH * ICH * Ky* Kx 라고 생각했는데, 옳게 파악한 것이 맞을까요? 항상 강의 잘 듣고있습니다. 바쁘신데도 질문에 친절하게 답변해주셔서 감사합니다 맛비님! 긴 글 읽어주셔서 감사하고 좋은 하루 되세요 :)
public class student { public int score; public int getScore() { return this.score; } } 위와 같은 코드가 있고 연관관계 매핑이 되어있어 현재 프록시 상태라고 가정했을 때 점수를 얻기 위해 student.score를 사용 하면 영속성 컨텍스트로부터 초기화를 받지 못하고, student.getScoret()를 하면 초기화를 받는 건가요 ? 만약 프로퍼티 접근을 사용했을 때 초기화를 받지 모한다면 studnet.score 안에는 무슨 값이 들어있게 되는 건가요 ?
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예 [질문 내용] 제가 이해한게 맞을까요? 일단 기본적으로 type을 LAZY 로 하는 이유는 조회할때 한 방에 다른 엔티티까지 쿼리가 나가고 그거에 연관된 엔티티까지 쿼리가 나가면 비효율 적이다. 그래서 LAZY 를 쓰는데 조회할때 다른 Entity 의 값도 가져오려면 LAZY 타입이니 쿼리가 많이 나가서 fetch JOIN 으로 한 쿼리로 연결 시킨다. 그러면 EAGER 바꾸면 될 것같지만, EAGER 는 예측할 수 없는 문제도 있고, 다른곳에서 조회할때는 또 다른 엔티티의 값이 필요가 없을 수도 있기 때문에 기본은 LAZY로 해두고 다른 엔티티의 값이 필요한 특수한 경우에만 fetch JOIN 을 한다.
실전! 코틀린과 스프링 부트로 도서관리 애플리케이션 개발하기 (Java 프로젝트 리팩토링)
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 자바 스프링에서는 테스트용 생성자 메서드가 있어도, 매번 일일히 null을 넣어준다거나 하는 문제점들이 있어서 결국 Builder를 사용했었는데 코틀린에서는 롬복 Builder가 지원되지 않는다고 해서 엄청 고민 중이였습니다 근데 이번 강의 보니까 그냥 온전한 객체 만들어주는 팩터리 메서드 하나 만들어놓고 테스트용으로 필요한 인자 값들만 설정해주면 되는 거였군요 진짜 미쳤다.. 갓틀린.. 잘 배워갑니다..
설계독학맛비's 실전 AI HW 설계를 위한 바이블, CNN 연산 완전정복 (Verilog HDL + FPGA 를 이용한 가속기 실습)
수업자료를 마이크로소프트 원드라이브에서 txt상의 키를 이용해 다운을 받았는데 받은 zip이 비어있다고 나옵니다. 압축해제를 진행하려고 해도 invalid하다고 하네요. ================= 현업자인지라 업무때문에 답변이 늦을 수 있습니다. (길어도 만 3일 안에는 꼭 답변드리려고 노력중입니다 ㅠㅠ) 강의에서 다룬 내용들의 질문들을 부탁드립니다!! (설치과정, 강의내용을 듣고 이해가 안되었던 부분들, 강의의 오류 등등) 이런 질문은 부담스러워요.. (답변거부해도 양해 부탁드려요) 개인 과제, 강의에서 다루지 않은 내용들의 궁금증 해소, 영상과 다른 접근방법 후 디버깅 요청, 고민 상담 등.. 글쓰기 에티튜드를 지켜주세요 (저 포함, 다른 수강생 분들이 함께보는 공간입니다.) 서로 예의를 지키며 존중하는 문화를 만들어가요. 질문글을 보고 내용을 이해할 수 있도록 남겨주시면 답변에 큰 도움이 될 것 같아요. (상세히 작성하면 더 좋아요! ) 먼저 유사한 질문이 있었는지 검색해보세요. 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. ==================
안녕하세요! 강사님 좋은 강의 덕분에 정말 몰두해서 공부하고 있는 수강생입니다. CIFAR10 데이터세트를 이용하여 CNN 모델 구현 실습 - 02 강의에서 모델을 구성하실 때, 필터의 개수가 32 -> 64 -> 128 이렇게 점차 증가하였는데, 첫 번째로 이렇게 구성하는게 보편적인 방법인 것인지 궁금하며, 두번째는 128 -> 64 -> 32 이렇게할 경우에는 효율이 좋지 않은 것인지 또 64 -> 128 -> 32 이런식으로 섞어주면 안되는 것인지 궁금합니다.
선생님 안녕하세요. 강의 4분30초 부근 만들어진 모델을 test데이터로 성능을 측정했을 때, 정확도가 0.92정도로 꽤 높다고 생각합니다. 하지만 강의에선 flatten으로 인해 파라미터 개수가 급격히 증가하여 과적합이 일어났다고 설명하셨는데, 만약 과적합이 일어났다면 test데이터로 성능을 측정했을 때 더 낮은 정확도가 나와야하는것 아닌가요? train데이터셋으로 모델을 훈련시킬 때 정확도가 99%가 나왔기 때문에 과적합이라고 설명해주신건 이해를 했습니다. 하지만 test데이터셋으로 모델 성능평가를 했을 때 높은 정확도가 나왔음에도 과적합이라고 생각하는건 이해가 되지 않아서 문의 드립니다.
@PostMapping("/items/{id}/edit") public String updateItem(@PathVariable Long id, @ModelAttribute Item item) { Item findItem = itemService.findById(item.getId()); //더티 체킹 findItem.setId(item.getId()); findItem.setName(item.getName()); findItem.setPrice(item.getPrice()); findItem.setStockQuantity(item.getStockQuantity()); findItem.setAuthor(item.getAuthor()); findItem.setIsbn(item.getIsbn()); return "redirect:/items"; } 강의를 보지 않고 스스로 코드를 짜보고 있는데 이렇게 하니까 수정내역이 반영 되지 않더라구요 스스로 생각해봤을 때는 다음 2가지 이유 중 하나일 것 같은데 이유가 이유가 무엇인가요 ㅠㅠ? findItem은 영속성 컨텍스트가 관리하지 않는 객체가 된 것이다. 따라서 더티체킹이 되지 않는다. 영속성 컨텍스트가 관리하는 엔티티는 맞지만 Controller에는 트랜잭션이 없어서 반영이 안되는 것이다.
안녕하세요 선생님! 좋은강의 감사합니다 잘듣고 있습니다!! 궁금한것이 생겨 질문을 드립니다 실제 회사나 연구소에서 이미지 데이터가 많거나 영상데 이터로 학습을 하는경우(이미지데이터가 충분히 많다고 가정한경우) 굳이 이미지 augmentation을 하지 않아도 되나요...?
선생님 안녕하세요. 두가지 질문이 있습니다. 검증데이터셋을 구성할 때, 학습데이터 내의 데이터로 검증 데이터셋을 구성하는 이유는 학습데이터셋에 대한 과적합을 확인하기 위해서 인가요? 그렇다면 다른 데이터셋으로 진행할 때도 학습데이터셋 내에서 검증 데이터셋을 구성하는 것이 맞는건가요? 학습,검증데이터셋을 나눠줄 때 사이킷런의 train_test_split 을 사용하는 이유는 단순히 데이터셋을 나누기에 적합한 함수이기 때문에 사용하는 것이죠? test data, valid data를 나누는데 함수 이름이 train_test_split이라서 헷갈리네요.