묻고 답해요
160만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결설계독학맛비's 실전 AI HW 설계를 위한 바이블, CNN 연산 완전정복 (Verilog HDL + FPGA 를 이용한 가속기 실습)
코드 질문입니다 [AI HW Lab2]
안녕하세요 맛비님.별 다른 질문은 아니고, 예전부터 궁금했던 것인데위 사진에서 40번째줄에 r_valid <= {LATENCY{1'b0}};부분을 왜 저렇게 표현했는지 궁금합니다.r_valid <= 0; 이렇게 해도 LATENCY가 달라짐에 따라 0의 값이 고정이지 않나요??위에서 localparam LATENCY = 2 라고 해서 40번째 줄은 r_valid <= {2{1'b0}}; 와 같습니다. ( 2{1'b0} = 2*1'b0 = 2'b0 인건가요? )
-
미해결설계독학맛비's 실전 AI HW 설계를 위한 바이블, CNN 연산 완전정복 (Verilog HDL + FPGA 를 이용한 가속기 실습)
Lab2 Practice 3 강의 중 genvar 코드 질문입니다.
안녕하세요, Lab2 Practice 3 강의에서 cnn_kernel.v 코드에 3가지 질문이 있습니다. (4분 47초 경) 43번 라인에서 사용된 mul_idx 변수는 genvar 키워드로 선언했는데, 63번 라인에서 사용된 acc_idx 변수는 왜 integer 키워드로 선언된건가요?동일한 generate 구문에서 사용되는데 이유가 궁금합니다. 두번째 궁금증인데요,코드에서 2번째 generate 구문은 왜 generate를 사용한 건가요?반드시 generate 가 있어야 simulation뿐만이 아닌 synthesis에서도 for 문을 사용할 수 있기 때문인가요? 3번째는 위 코드 65~70 라인에서 always @ (*) 구문을 사용하는데, 조합회로(맞나요?)인데도 blocking(=)으로 코드를 기술하면 순차적으로 수행되는것으로 이해하면 되는건가요? 좀 더 구체적으로 말씀드리면 for문에서 반복되는 blocking 대입을 unloop 했을 때 코드들의 순서가 보장이 되는지? 감사합니다.
-
미해결설계독학맛비's 실전 AI HW 설계를 위한 바이블, CNN 연산 완전정복 (Verilog HDL + FPGA 를 이용한 가속기 실습)
On-chip vs Off-chip
안녕하세요 맛비님.On-chip memory와 Off-chip memory에 대해서 질문드립니다. Off-Chip memory와 가속기 사이에 On-chip memory가 있는 이유? on-chip memory에 accumulator만 존재하면 되지 않을까요? (dram에서 read되는 data -> On chip의 accumulator -> 가속기). 이런 순서로 데이터가 이동하면 sram read delay가 없어도 되지 않을까요? (On-chip memory가 sram이라는 가정하)병목 현상으로 이 중 가장 느린 device인 DRAM의 속도에 맞춰질 텐데, DRAM에서 주는 data를 accumulator만 거쳐서 바로 가속기에 넣을 수는 없을까요?제가 알기로는, 병목 현상을 방지하기 위해서 빠른 device는 빠른 device 들끼리 묶어서 속도가 빠른 BUS를 사용하고, 느린 device는 느린 device들끼리 묶어서 속도가 느린 BUS를 사용한다고 알고 있는데, 만약 이 말이 맞다면, 빠른 device들과 느린 device들의 연결은 어떻게 해주는지 궁금합니다.Off-chip memory는 chip 외부에 있기 때문에 메모리 내 데이터를 read write 할 때 power 소모가 on-chip 대비 크다라고 말씀하셨는데, 왜인지 잘 모르겠습니다. Chip 내에서만 power 소모가 일어나는 건가요? power 소모의 주체는 누구인지 궁금합니다.감사합니다.
-
미해결설계독학맛비's 실전 AI HW 설계를 위한 바이블, CNN 연산 완전정복 (Verilog HDL + FPGA 를 이용한 가속기 실습)
강의 내용에 대한 질문입니다. (Lab2 Practice 1)
안녕하세요, 강의 잘 듣고 있습니다.질문이 있는데요, Lab2 Practice 1의 3분 13초 에서 빨간색 네모 박스가 앞선 연산과 동일하다고 말씀하셨어요.앞선 연산은 필터의 크기 (KX, KY)와 동일한 크기를 가지는 CI개 채널 입력에 대한 CO개 만큼의 출력을 생성하는 연산으로 이해됩니다. 그러면 빨간 네모 박스 연산이 위 연산과 동일하려면 첫 번째 라인의 for문이 지금처럼 (y, E: 출력 픽셀 y축 위치) 에 대한 for문이 아니라출력 채널의 수 (m, M: 출력 채널 수) 가 되어야 하는 것 아닌지요? (C코드에서의 m 이 연산 그림에서의 CO로 이해됩니다.) 감사합니다.
-
미해결설계독학맛비's 실전 AI HW 설계를 위한 바이블, CNN 연산 완전정복 (Verilog HDL + FPGA 를 이용한 가속기 실습)
FPGA uart 에러
안녕하세요. 항상 좋은 강의 잘 수강하고 있습니다. CNN을 fpga에 올리는 강의를 따라서 진행하고 있는데 아래와 같이 uart 통신 결과가 출력됩니다.그래서 레퍼런스 문서들을 읽어보면서 이리저리 해보다 아래 사진의 파란색 부분을 qspi와 jtag를 연결하도록 하고나니 정상적으로 작동했습니다.그 후에 몇가지 실험을 해보니 fpga 프로그래밍을 하기 위해서는 sd와 qspi가 연결되어 있어야했고 실제 동작할 때는 qspi와 jtag 연결한 상태이어야만 했습니다. sd, sqpi, jtag에 대한 문서를 읽어봐도 제대로 이해가 가지 않아서 혹시 sd, qspi, jtag에 어떻게 연결하는지가 무엇을 의미하는지 알 수 있을까요?? 감사합니다.zybo z720을 사용하고 있고 강의 영상과 다른 점 없이 잘 진행되었는데 무엇이 문제인지 몰라 질문 드립니다. 감사합니다.
-
미해결딥러닝 CNN 완벽 가이드 - TFKeras 버전
회귀 문제 해결 시 딥러닝 vs 머신러닝 질문드립니다.
안녕하세요. 권철민 선생님.저는 회사에서 업무 적용을 위해 머신러닝과 딥러닝을 공부하고 있습니다.그동안 딥러닝은 매우 방대한 데이터와 복잡한 차원 연산이 필요한 이미지 처리 등에 활용되고 머신러닝은 비교적 정형화된 데이터의 회귀, 분류 등에 활용되는 것으로 알고 있었습니다.근데 최근 상사로부터 딥러닝을 이용해 데이터를 회귀 분석하라고 요구 받았습니다. 머신러닝과 딥러닝을 혼동하셔서 그렇게 말씀하신 건지는 모르겠습니다만..이에 어떤 경우에는 딥러닝으로, 또는 머신러닝으로 회귀 문제를 푸는 것이 유리한지 두 방법의 장단점을 알고 싶습니다.그리고 만약 딥러닝으로 회귀 문제를 푸는 것이 유리한 경우가 있다면.. 본 강좌에는 CNN 중심으로 설명하고 있는데 타 강의를 참고해야 할까요? ㅠㅠ
-
미해결딥러닝 CNN 완벽 가이드 - TFKeras 버전
필터 관련문의
강의 잘 듣고 있습니다.지금 CIFAR 데이터셋 CNN구현 실습 부분을 보고 있으면서 궁금한점 이 생겨 문의드립니다. 학습시 Conv2D, Activation, Maxpooling2D 같은 필터 개수는 어떻게 정의하는건가요 ? param이 어떻게 변하는지는 설명을 잘 해주셔서 이해했는데, Conv2D 등을 통해 필터시 어떤 기준으로 여러번 사용하는지가 이해가 안되내요. 감사합니다.
-
미해결설계독학맛비's 실전 AI HW 설계를 위한 바이블, CNN 연산 완전정복 (Verilog HDL + FPGA 를 이용한 가속기 실습)
26분 25초 weights 질문입니다.
안녕하세요 맛비님.26:25초에 weight의 개수에 대해서 질문드립니다.layer1에서 weight가 6개 (2*3) 쓰였고,layer2에서 weight가 6개 (3*2) 쓰였고,layer3에서 weight가 4개 (2:2) 쓰였으면,총 weight의 개수는 6+6+4 = 16개 아닌가요?어떻게 2*3*2*2 = 24개인지 질문드립니다. 감사합니다.
-
미해결설계독학맛비's 실전 AI HW 설계를 위한 바이블, CNN 연산 완전정복 (Verilog HDL + FPGA 를 이용한 가속기 실습)
수업자료 관련 질문입니다
안녕하세요 맛비님제가 이쪽 (NPU) 관련 자료들을구글에서 참고해 독학을 하였습니다.맛비님 강의를 들어보니, 제가 그동안 찾았던 자료 중 틀린 부분이 몇 가지 보였습니다.그리고 놀라웠던 점이, 교육 자료 중 이미지, 개념 정리가 너무 완벽하게 되신 것이 놀랍습니다. (흐름...)아직 대학교 4학년 (많이 늦었지만..) 저도 나중에 어떤 것을 찾고 이해한 내용을 바탕으로 발표를 해야할텐데, 맛비님 강의의 교육자료의 출처가 어디인지 궁금합니다. (추천하시는 책 or 사이트가 있는지도 궁금합니다.) 그리고, 영어로 된 사이트가 더 신뢰하기 편한가요?저는 영어로 된 사이트보다 한국말로 된 사이트가 좋아서 참고했었는데, 생각보다 한국말로 된 블로그에서 틀린 점이 많았습니다.
-
미해결딥러닝 CNN 완벽 가이드 - TFKeras 버전
Tensorflow c++과 subclassing에 관해 질문드립니다.
선생님 안녕하세요! 새해 복 많이 받으세요!!올려주신 강의 정말 감사드립니다. 저는 선생님 강의를 파이썬 머신러닝 부터 컴퓨터 비전, CNN을 통해 혼자 딥러닝을 공부하고 있는 전자공학 전공 학생입니다.앞으로의 진로와 공부 방향에 관해 몇가지 질문을 드리고 싶습니다.현재 선배들 중 제조업(반도체,자동차, 배터리)에 종사하는 선배 중 딥러닝쪽 업무를 하는 선배들로 부터 요즘은 모델링을 파이썬으로 하지만 C++을 이용해서 많이 진행한다고 하고, Tensorflow를 더 잘 사용하기 위해서는 subclassing을 통한 모델을 만들 수 있어야 한다고 들었습니다. (https://www.tensorflow.org/guide/keras/custom_layers_and_models)하지만 인터넷으로 검색을 해봐도 Tensorflow와 C++을 연동해서 사용하는 경우에 대한 정보를 얻기 힘들고 subclassing 또한 정보를 얻기 어려웠습니다. 혹시 관련하여 알고계신 정보가 있다면 공부방법과 강의계획이 있으신지 여쭤봐도 될까요?
-
미해결딥러닝 CNN 완벽 가이드 - TFKeras 버전
tensorflow api 질문
안녕하세요 교수님. 최근에 텐써플로우로 작업을 해야할 필요가 있어서 텐서플로우 도커를 사용하여 작업을 진행하고 있습니다. 작업을 함에 있어서 최근에 api가 이상하게 바뀐거같아서 여쭈어봅니다. 코렙에서 또한 해당 에러가 있는거 같아서 혹시 해결을 하셨는지 궁금해서 여쭈어봅니다. 현재 쓰고 있는 버전은 2.11.0입니다 <바뀐 api><기존 api>작동은 하지만 하위 함수들을 자동적으로 호출을 못해오는 현상
-
미해결설계독학맛비's 실전 AI HW 설계를 위한 바이블, CNN 연산 완전정복 (Verilog HDL + FPGA 를 이용한 가속기 실습)
안녕하세요, 챕터6,7에 대한 질문입니다.
안녕하세요, 좋은 강의 감사합니다. 1. MAC을 늘렸을 때 더 빠르게 연산이 된다고 하시면서 M(CO)에 동그라미 치셨는데 MAC과 M의 관계에 대해 직관적으로 연관짓기가 어려워서 어떤 관계인지에 대해 질문드립니다. 그리고 MAC은 연산량이라고 이해했는데, 연산량이 늘면 성능이 더 안좋아지는 것이 아닌가요?! 질문드립니다!weight 개수를 CO+edge개수 라고 생각하면 될까요?HW 설계에서 나눗셈이 resource가 왜 많이 드는지 궁금합니다. 단순하게 생각해보면 소수점 처리 때문일까 싶은데, 어떤 컨셉인지 궁금해서 질문드립니다.알렉스넷처럼 batch가 2 이상인 모델은 병렬 연산을 요함으로 batch 1인 모델보다 많은 자원을 사용한다는 것이고, 이는 성능과 비용의 trade off 라고 이해하면 될까요?
-
미해결설계독학맛비's 실전 AI HW 설계를 위한 바이블, CNN 연산 완전정복 (Verilog HDL + FPGA 를 이용한 가속기 실습)
챕터5 CNN basic 질문입니다
안녕하세요 좋은 강의 감사합니다.1. 강의내용 중 stride를 설명하실 때 output 피쳐맵의 크기가 X/stride, Y/stride로 일반화가 가능하기 때문에 stride가 1이면 input output featuremap 크기가 동일하다고 설명 해주셨는데, 만약 stride가 1일 때, padding이 없다면 X-2, Y-2만큼의 output feature map이 생기지 않나요? padding이 없다면 컨볼루션 할 때 미정의 값으로 연산을 해야할 것 같아서요..! 2.아래의 그림에서 output 채널의 크기는 예시에서 임의로 주어진 것인지 궁금합니다! output 채널의 크기인 24개 만큼의 depth가 weight에 있다고 가정한 예시일까요?
-
미해결딥러닝 CNN 완벽 가이드 - TFKeras 버전
실습 동영상 관련 질문
#Xception 모델 학습, 성능평가 및 예측 후 결과 분석하기 안녕하세요 선생님선생님의 코딩을 토대로 실습연습을 하고 있는데 질문이 있습니다 1.검증 데이터 성적이 너무 높으면 이 부분은 과적합이라고도 볼 수 있을까요(test-score가 아니라도)? 아니면 데이터의 양이 그냥 너무 적어서 발생하는 것일까요? (early stop으로 16에서 멈추고 val score = 0.97이 나옵니다)*데이터 크기: (5856, 2) 2.해당 자료가 0또는 1인데 (정상폐, 폐렴폐 ct)인데 loss =binary_crossentropy를 쓰면 될까요? (만약 categorical_crossentropy를 쓰면 문제가 발생하나요?) 3.만약에 데이터가 불균형하면 머신러닝에서 배웠던 것 처럼 -양성 데이터를 판별하는게 중요하다고 하면 metrics=['accuracy'] 이부분을 precision으로 할 수 있을까요? (반대로 음성이면 재현율)*model.compile(optimizer=Adam(lr=initial_lr), loss='binary_crossentropy', metrics=['accuracy'])4.선생님이 여기 실습에서 해당 데이터를 local? 영역에 넣으시고 분석하셔서 불러오는데 시간을 많이 줄인 것을 보았는데 바탕화면에 있는 데이터도 선생님이 하신 것 처럼 불러올 수 있을까요? 아니면 구글코랩처럼 따로 경로가 있을까요? (데이터를 불러오는데 1초이상이 걸립니다..) 감사합니다
-
해결됨딥러닝 CNN 완벽 가이드 - TFKeras 버전
최근 등장한 CNN 아키텍처
강의 중에 나오는 최근 모델은 2017년 SENet 즈음이 마지막으로 나오는데구글링을 해봐도 SENet이 등장한 2017년이 최근 모델로 나오더라구요그나마 2019년 ResNeXt50 정도가 있는 거 같은데최근 3년 2020~2022년 사이에 개발된 CNN 모델이 있을까요?이러한 최신 CNN 경향은 어디서 확인하나요?
-
미해결딥러닝 CNN 완벽 가이드 - TFKeras 버전
클래스 질문
안녕하세요. 강사님. 제가 이번 실습을 기반으로 병해충 진단 모델을 구축중입니다. 이에 대해 질문사항이 있어 질문드립니다.efficientNet모델로 딥러닝 모델을 만들고 있습니다. 총 16개의 병해충에 걸린 식물을 구분하는 모델입니다. output layer에서 최종적으로 예측하고 나온 16개의 확률값중에 가장 큰 확률값의 index가 4라고 할때 이게 어떤 식물인지 어떻게 아는건가요?..
-
해결됨설계독학맛비's 실전 AI HW 설계를 위한 바이블, CNN 연산 완전정복 (Verilog HDL + FPGA 를 이용한 가속기 실습)
Bit Width 설정 관련해서 질문합니다.!
Unisigned Value의 곱셈에 대한 Bit Extension을 통해 16 Bit , 이 값을 32번 누적하게 되면 Overflow를 방지하기 위해 47비트가 필요한 것이 아닌가요? 24비트로 설정된 이유를 여쭤보고 싶습니다!
-
미해결딥러닝 CNN 완벽 가이드 - TFKeras 버전
미니배치 관련 질문
안녕하세요 선생님! BGD도 1:507 까지 모든 데이터를 순회하고 mini BGD도 사이즈를 나눠서 하지만 모든 데이터로 업데이트를 한다고 생각하는데 , 둘의 차이점이 무엇인가요?
-
미해결딥러닝 CNN 완벽 가이드 - TFKeras 버전
1 x 1 convolution을 적용하면 왜 비선형성이 좋아지는지 궁금합니다.
선생님. 처음부터 쭉 듣다보니, 어느새 절반 이상을 듣게 되었습니다! 좋은 강의 감사드립니다. 1 x 1 convolution을 적용하면 왜 비선형성이 좋아지는지 궁금합니다. convolution은 시행할수록 비선형성이 항상 좋아지는것인가요??
-
미해결딥러닝 CNN 완벽 가이드 - TFKeras 버전
선생님. 강의를 듣다보니, batch 크기와 관련하여 질문이 있습니다.
선생님. 강의를 듣다보니, batch 크기와 관련하여 질문이 있습니다. 강의 말미에 GPU는 batch크기가 클수록 학습이 빨라져서 속도가 빠르다고 하셨습니다. 그렇다면, H/W의 성능이 좋다는 가정하에, batch 크기를 증가시키면 같은 결과지만 속도가 빨라지는 차이만 있는것인가요? 아니면, 학습을 시키는 적정한 batch 사이즈가 있는것인가요?