hongzimao / pensieve

Neural Adaptive Video Streaming with Pensieve (SIGCOMM '17)
http://web.mit.edu/pensieve/
MIT License
524 stars 280 forks source link

conv2d in multi_video_sim #68

Open jlabhishek opened 5 years ago

jlabhishek commented 5 years ago

Hi hongzi, 1)I was going through the code of multi_video_sim and I notice that the a3c code uses a 2d convolution for throughput and delay while the other methods used 1d convolution, I don't think this has been talked about in the code. Can you throw some light on why this modification was done.

2)Also i was looking into what values go into state and I noticed that the chunk sizes input is of the other 10^(-7) .Example: [[ 3.75000000e-02 3.75000000e-02 5.62500000e-02 3.75000000e-02 5.62500000e-02 5.62500000e-02 3.75000000e-02 5.62500000e-02 5.62500000e-02 3.75000000e-02] [ 5.95997932e+00 5.97318272e+00 5.99151095e+00 5.95055764e+00 5.96659600e+00 5.97358284e+00 5.97676357e+00 5.98489012e+00 5.97160041e+00 5.97426935e+00] [ 3.82778614e-01 4.08547365e-01 4.41858447e-01 3.39694690e-01 4.04826458e-01 4.38151490e-01 3.54266258e-01 3.81687919e-01 3.61393491e-01 3.14086040e-01] [ 4.09174759e-01 3.67966024e-01 8.16717706e-01 4.09533101e-01 8.39616362e-01 9.30131647e-01 4.68192630e-01 9.18734477e-01 1.13289719e+00 4.73310553e-01] [ 5.05376344e-01 4.94623656e-01 4.83870968e-01 4.73118280e-01 4.62365591e-01 4.51612903e-01 4.40860215e-01 4.30107527e-01 4.19354839e-01 4.08602151e-01] [ 9.70512804e-08 1.64552222e-07 3.55417285e-07 -1.00000000e+00 -1.00000000e+00 -1.00000000e+00 -1.00000000e+00 -1.00000000e+00 3.98445431e-06 -1.00000000e+00] <--------this row [ 1.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00]]

This might be because chunk sizes are in MB for this code while single video methods has chunk sizes in bytes. Is it ok to scale these values to the order of 10^(-1)

Thank you so much

hongzimao commented 5 years ago

Thanks for your careful checking of the code! About your questions --- (1) We did a few experiments after the paper when cleaning up the code. This gave a slight improvement in processing the data (the intuition was each throughput and time observation should be considered together). This adjustment is not very crucial though. You can use 1D conv and check how it trains. (2) Nice catch! We might omit the unit transformation for this part of the code when refactoring. Could you scale it in the right range and see if it helps the performance?