THẢO LUẬN

  1. "Although large-kernel CNNs may degenerate in a different mechanism from ViT’s, we also observed without shortcut, it is difficult for the network to capture local details." Cái này là do nhóm tác giả quan sát và đưa ra kết luận, còn theo như mình biết thì chính chủ của skip connection - Kaiming He sử dụng nó với mục đích đưa gradient flow backward và fordward dễ hơn trong mạng => model dễ tối ưu hóa hơn. Nếu như theo lối suy nghĩ này thì shortcuts giúp gradient đi sâu hơn lúc backprop -> những layer đầu cũng nhận được nhiều gradient signal hơn là model không có shortcuts, từ đó dễ học được local information. Bạn có thể refer đến bài này của tác giả : Identity Mappings in Deep Residual Networks

  2. Các model CNN Classifier có 2 tính chất chính là translation equivariant và translation invariant. Một model mạnh thì 2 tính chất trên phải càng mạnh. Với tính chất translation equivariant thì càng gần input layer -> cầng gần spatial domain -> tính spatial equivariance phải cành mạnh -> cho phép tạo ra feature map đủ thông tin spatial (edge, texture, shape), tính chất này được tạo bởi các lớp conv + nonlinear. Đồng thời, tính chất translation invariant được tạo bởi các lớp Pooling, càng về sau thì trong feature map dần ít đi thông tin spatial mà thay vào đó là context, dó đó các lớp pooling mang nhiệm vụ tổng hợp thông tin quan trọng -> biến nó thành semantic feature, gói gọn nó cho lớp MLP (một phần cũng vì MLP khá nhạy cảm với thông tin spatial, nếu như để quá nhiều thì model sẽ bị ảnh hưởng khi object trong ảnh dịch chuyển như bạn nói). "tính chất này giúp performance của mạng không bị ảnh hưởng nhiều nếu object trong ảnh bị dịch chuyển" có lẽ cách diễn giải này của mình làm bạn thắc mắc, nhưng ý của mình muốn nói là tính chất này vẫn là một tính chất rất quan trọng mà mạng CNN cần có.

  3. "we also find when the pretraining dataset increases to 73 million images (refer to RepLKNet-XL in the next section), re-parameterization can be omitted without degradation" câu này theo ý tác giả thì là khi train với 73 triệu ảnh, có thể bỏ re-param mà không làm giảm performance. Tức là vẫn giữ các nhánh phụ, mình cũng không rõ mình có hiểu đúng ý tác giả hay không :v sorry bạn vì câu này mình không trả lời rõ ràng được. image.png

  4. Ví dụ kích thước feature map là 7x7. Nếu muốn sử dụng conv có kernel 13x13 với feature map này thì chắc là phải có padding đấy ạ image.png Trong code thì tác giả muốn giữ nguyên kích thước feature map nên để padding kernel_size//2 (https://github.com/DingXiaoH/RepLKNet-pytorch/blob/b76808ac2c763eaed6af9d286c6163c9345b4d5f/replknet.py#L86)

  5. Nếu như bạn đọc 2 paper visual attention network và segnext rồi thì sẽ thấy cách làm này có vẻ khá tương tự như 2 paper trên. Cách này giúp model vẫn có performance của conventional convolution kxk, nhưng computation cost có thể giảm đi !? Còn 1 cách giải thích chi tiết hơn là cách này giúp computation cost có thể giảm xuống, vì khi sử dụng DW 3x3 khối lượng tính toán ít hơn conv 3x3 thông thường rât nhiều nhưng giữa các channel lại thiếu sự giao tiếp với nhau nếu như bạn hiểu cách depth-wise conv và conventional conv làm việc, do đó việc dùng conv 1x1 là để tăng tính interactive giữa các channel. Tóm tắt lại thì cách làm này giúp model giữ performance đồng thời giảm computational cost.

Tất cả những câu trả lời trên của mình đều được đưa ra dựa trên kiến thức cá nhân, nên nếu có chỗ nào sai sót thì mong bạn góp ý thêm. Cảm ơn bạn rất nhiều, rất mong nhận được phản hồi từ bạn.

0
  1. "Cũng tương tự cho CNN, khi không có shortcut, mạng sẽ rất khó để bắt được local information" mong tác giả của bài viết giải thích hộ mình điều này với, mình vẫn chưa rõ tại sao lại như thế?
  2. "Phương pháp này sẽ giúp gia cố tính chất translational equivariance (tính chất này giúp performance của mạng không bị ảnh hưởng nhiều nếu object trong ảnh bị dịch chuyển)". Mình không hiểu rõ chỗ này lắm, mình tưởng nếu tính translation equivariance mạnh thì output của mạng sẽ bị thay đổi khá nhiều nếu object trong ảnh dịch chuyển chứ nhỉ?
  3. "Khi pretrained với tập dữ liệu 73 triệu ảnh (RepLKNet-XL) thì có thể bỏ re-param mà không làm giảm hiệu năng." Tức là lúc này RepLKNet chỉ sử dụng thuần 1 nhánh large kernel thay vì large kernel + 3x3 Conv phải không ạ?
  4. Ở guide line 5, làm thế nào để có thể áp dụng kernel lớn hơn feature maps vậy ạ?
  5. "DW 3×3 được thêm vào để lấy low-level pattern". Theo mình thì sử dụng 3x3 Conv thông thường ở đoạn đầu của model thì cũng có thể lấy được low-level pattern mà nhỉ, và hiệu năng của nó cũng tốt hơn là DWConv nữa. Thêm nữa, khi sử dụng DWConv thì lại còn phải đưa thêm vào 1x1 Conv phía sau đó. Tại sao lại không sử dụng 3x3 Conv ở đoạn này ạ?
0

Bài viết hay, em đang tìm hiểu về CRDs của K8S, không biết bác có gợi ý nào về sách hoặc tutorials nào hay cho em với ạ.

0
thg 12 15, 2022 9:48 SA

.

0
thg 12 15, 2022 9:45 SA

@nampt.me ,làm sao để dùng tiếp khi hết 500 giờ

0

Các bạn tham khảo website kiến thức chuyên môn về bao bì nhé: https://ipak.vn/

0

Rất khó để hiểu hết các khái niệm này, bạn có thể đưa dẫn chứng, trường hợp cụ thể để dùng vào mục đích gì và khi nào được không?

0

@tungbuitien bạn có phần demo chưa ạ. mình có thể xin tham khảo được không ạ

0

thanks bác, vậy hóa ra nó chỉ khác nhau cái return, 1 cái return function 1 cái return value

0
thg 12 14, 2022 8:40 CH

làm thế nào để add được package quill-image-resize

0

Câu số 6 có chút sơ sót cả nhà thông cảm. Sau đây được edit: 6. Em có biết về Boundary Testing và Branch Testing không ?

0
thg 12 14, 2022 3:19 CH

@khangnd Vâng Em cũng thấy rối thiệt mà em muốn bấm vào đúng item nớ thì lấy key languages trong chính nó luôn

Kiểu như dưới hình á anh

Em muốn reuse lại component MenuItem ấy

Nhưng vấn để là cái MenuItem có các props typpe là optional.

Em chưa biết passing như nào cả

image.png image.png

0

xịn quá anh

0
thg 12 14, 2022 10:12 SA

thank bạn, mình đã sửa lại 😄

0
thg 12 14, 2022 8:59 SA

middleware sinh ra là để quản lý, chứ nó không thay thế cho các thư viện call API trực tiếp. nhắm thấy phải dùng thì dùng, vì dùng đồng nghĩa với việc tốn thêm tài nguyên để quản lý, kiến thức để sử dụng và cả các vấn đề phát sinh nữa. nhưng không dùng không có nghĩa là không học không biết

+1
thg 12 14, 2022 8:53 SA

redux-thunk ở đây giúp cho redux hiểu và hoạt động một cách chính xác nếu nó nhận được 1 async logic, đồng thời làm bàn đạp đế phát triển lên các phần tiếp theo tốt hơn như RTK Query và Mutation, nó không bắt ngta phải bỏ cách viết redux thuần, đơn giản là nếu chúng mày truyền láo (async) vào thì tao vẫn sẽ hiểu và làm việc bình thường, chứ không phải không xử lý được như trước khi có thunk

+1
thg 12 14, 2022 8:13 SA

Sao tôi copy code của ông chạy với vòng for thì hết 2ms mà với callback Partitioning mất 8.5s nhỉ, tôi chạy có 500k đơn vị, hay bài toán chỉ hữu dụng với dữ liệu lớn lên đến trăm triệu ?

0

Đỉnh quá anh ơi.

0
thg 12 14, 2022 5:11 SA

Với html như thế này:

<section class="container py-4">
<button class="btn btn-primary"> Click on this btn</button>
</section>

và nội dung js như thế này: function handleThis (e) { console.log(this); } Trong bài viết có đề cập đến: "Khi một function được sử dụng như một hàm xử lý sự kiện, ngữ cảnh this của nó được chỉ định tới đối tượng đặt phương thức lắng nghe sự kiện." Không hiểu mình hiểu sai ở đâu mà khi console.log(this) ở hàm handleThis thì ra đối tượng this == window nhỉ. Tại đối tượng đặt phương thức lắng nghe sự kiện là thẻ div có id="thisBtn" mà, theo như mình hiểu thì nó phải trả ra đối tượng div đó chứ.

Còn nếu js như thế này thì trả ra đúng. function handleThis_2(e) { console.log("Đây là this 2", this); } document.getElementById('thisBtn').onclick = handleThis_2; Ai giúp mình chỗ này với.

0
Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí