Closed PLBMR closed 4 years ago
I think we will get more insight in how the network works when the train script will be published.
for 1. the image you quote does shows the dimension.
Note that the diagram doesn't show the batch dimension.
i.e. the FC-1024
layer has this dimension in the graph:
(Pdb) graph.get_tensor_by_name('dense_1/Relu:0')
<tf.Tensor 'dense_1/Relu:0' shape=(?, 1024) dtype=float32>
... and PEPX4.3 is:
(Pdb) sess.graph.get_tensor_by_name('conv5_block3_out/add:0')
<tf.Tensor 'conv5_block3_out/add:0' shape=(?, 7, 7, 2048) dtype=float32>
While the plot I point to shows the output dimension of each entire PEPX module, it does not show the output dimensions of each layer within each PEPX module. Upon doing some exploration, this was my audit for PEPX1.1
:
0th conv1x1 (sess.graph.get_tensor_by_name('conv2_block1_0_conv/convolution:0')
): 56x56x256
1st conv1x1 (sess.graph.get_tensor_by_name('conv2_block1_1_conv/convolution:0')
): 56x56x64
DWConv3x3 (sess.graph.get_tensor_by_name('conv2_block1_2_conv/EConv2D_1/DepthwiseConv2dNative:0')
): 56x56x128
2nd conv1x1 (sess.graph.get_tensor_by_name('conv2_block1_2_conv/EConv2D_1/Conv2D:0')
): 56x56x64
3rd conv1x1 (sess.graph.get_tensor_by_name('conv2_block1_3_conv/convolution:0')
): 56x56x256
I am skeptical that this is the correct audit since the expansion convolution (1st conv1x1) looks to project into a lower dimension than the first-stage projection (0th conv1x1). Is there a better way to audit these internal layers of a PEPX module?
Unfortunately I'm not sure that there is a better way to 'audit' this right now.
Can I get this issue re-opened? I'd like to find out if others have answers or comments on question 2.
Re: question 2, the MobileNetV2 paper provides some insights into the projection-expansion-projection architecture.
Thanks for working on this project! This is very interesting and very impactful.
COVID-Net relies on a design pattern of projection-expansion-projection-extension (PEPX) throughout the network. I have beginner-level knowledge of computer vision, and I haven't seen this design pattern before.
Without loading in the model, what are the output dimensions of each layer in the PEPX module (Figure 2, top right box) for PEPX1.1? This would give me a better understanding of how dimension is changing within the module.
What is the intuition around the effectiveness of this design pattern? Are there some previous papers that use this design pattern for their core results?