visinf / irr Goto Github PK
View Code? Open in Web Editor NEWIterative Residual Refinement for Joint Optical Flow and Occlusion Estimation (CVPR 2019)
License: Apache License 2.0
Iterative Residual Refinement for Joint Optical Flow and Occlusion Estimation (CVPR 2019)
License: Apache License 2.0
Hi,
Is there a way to reduce the GPU memory usage ? With 1k *1k frame, it get out of memory.
RuntimeError: CUDA out of memory. Tried to allocate 28.00 MiB (GPU 0; 7.79 GiB total capacity; 5.71 GiB already allocated; 20.12 MiB free; 131.19 MiB cached)
Maybe by changing some training parameters i can reduce the memory usage of the optical flow runtime ?
Thanks ^^
Hi!
I have noticed that the name of sintel occ floder in datasets/sintel.py is occlusions_rev.
Line 44 in 1639c0f
It is different from the folder name in the original Sintel dataset(The original is occlusions, but get occlusions_rev here), Did you make any changes on occlusions of sintel?
hi,
this might be a simple question about training:
In .sh file, you set the start_epoch as 160 and 490(two train parts), may I take it as the continuing training of breakpoint at which training was interrupted or it has any other meaning?
If I want to use some other pretrained weights (which may not saved with epoch information), start_epoch would be zero just as regular finetuning process?
Thanks for your complete code.
I want to use the network in my own code (not using in console command mode) so I need to load state dictionary and pass it to the network. The problem is that the network model needs an input argument args. Most of the args parameters can be ignored except args.modules(). After reading the code for several times; I couldent find any clue that what it is and how can I set it manually.
What should I set self.modules()?
Another issue is that scipy no longer supports imread and it must be replaced by cv2,imread.
Best,
Ali Kafaei
HI!
I ran IRR-PWC_sintel.sh three times, and give the result as follows.
2019-09-05 11:27:10 ==> Epoch 1/1
2019-09-05 11:27:10 lr: 0.001
==> Validate: 100%|######################################| 34/34 00:36<00:00 0.92it/s F1_avg=0.7416, epe_avg=2.7496
==> Progress: 100%|##################################################| 1/1 00:36<00:00 36.88s/ep best_epe_avg=2.7496
2019-09-05 11:28:22 ==> Epoch 1/1
2019-09-05 11:28:22 lr: 0.001
==> Validate: 100%|######################################| 34/34 00:36<00:00 0.94it/s F1_avg=0.7416, epe_avg=2.7451
==> Progress: 100%|##################################################| 1/1 00:36<00:00 36.21s/ep best_epe_avg=2.7451
2019-09-05 11:33:18 ==> Epoch 1/1
2019-09-05 11:33:18 lr: 0.001
==> Validate: 100%|######################################| 34/34 00:36<00:00 0.93it/s F1_avg=0.7417, epe_avg=2.7598
==> Progress: 100%|##################################################| 1/1 00:36<00:00 36.53s/ep best_epe_avg=2.7598
In Table 5 of the paper, the result of IRR-PWC(Ours) in Sintel Training is 2.51
Why is it different from the result of the paper?
Or saved_check_point/pwcnet/IRR-PWC_sintel/checkpoint_latest.ckpt is not the weight which uploaded in sintel?
Hi,
Thank you for your great work! I used irr's dataloader in my code and it went very well when training. But when inferring, an error will occur:
RuntimeError: The size of tensor a (39) must match the size of tensor b (40) at non-singleton dimension 3
It seems there is a problem with the input size. I noticed that in scripts/validation/IRR-PWC_kitti.sh
, there is no augumentations like crop. However, there are some variances in the size of images in KITTI dataset(e.g. data_stereo_flow/training/image_0/000000_10.png
is 1226x370, while data_stereo_flow/training/image_0/000006_10.png
is 1242x375). Could you please tell me how to process KITTI images? Thank you very much!
Hi,
the function rescale_flow
that converts the scale of optical flow between global and local scale changes also the input flow variable (besides returning the rescaled flow). Operations done on the input flow of the function - chunk and multiplication - are both in-place.
Lines 47 to 59 in 3c0468b
This wouldn't be a problem because the function is usually used with the same input and output variable as flow=rescale_flow(flow,...)
.
However, it is not the case in IRR_PWC model on lines 125 and 126. Flow in variables flow_cont_f
, flow_cont_b
gets rescaled here to the "global" scale for the warping module. Nevertheless, the flow gets rescaled once more on lines 132 and 133.
Lines 125 to 133 in 3c0468b
The loss is evaluated on this double-rescaled flow. When using a pre-trained model, the flow flow_cont_f
is thus correctly in the global scale after rescaling on line 132 and it is in the local scale after rescaling on line 125 until 131. It thus enters the warping function in the local scale (but the global scale is expected), which causes the img2_warp
to be an incorrect warp of img2_resize
. As a consequence, the bilateral refining module gets an incorrect input img1_resize - img2_warp
.
Furthermore, flow_cont_f
is in an incorrect scale above the line 125 which makes decoder and context modules compensate for this.
Have a nice day,
Tomas
Hi!
I'm trying to train irr with multi-gpu using the DataParallel provided by pytorch. However, it seems slower than train with single gpu. Ever when I preload all the training data into RAM, the training with multi-gpu is slower than on a single gpu. Where is the bottleneck could be?
Thanks!
I am trying to run irr on my custom dataset using Google Colab but cannot install the correlation package.
i have successfully installed gcc-4.9
Can you guide me on how can i fix this?
GPU: Telsa T4
Cuda version 10.1
nvidia-smi:
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 450.66 Driver Version: 418.67 CUDA Version: 10.1 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|===============================+======================+======================|
| 0 Tesla T4 Off | 00000000:00:04.0 Off | 0 |
| N/A 41C P8 9W / 70W | 0MiB / 15079MiB | 0% Default |
| | | ERR! |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=============================================================================|
| No running processes found |
+-----------------------------------------------------------------------------+
nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2019 NVIDIA Corporation
Built on Sun_Jul_28_19:07:16_PDT_2019
Cuda compilation tools, release 10.1, V10.1.243
Error while running install.sh
...
...
/usr/local/lib/python3.6/dist-packages/torch/include/c10/core/MemoryFormat.h: In function ‘std::vector<long int> c10::get_channels_last_strides_2d(c10::IntArrayRef)’:
/usr/local/lib/python3.6/dist-packages/torch/include/c10/core/MemoryFormat.h:73:1: warning: control reaches end of non-void function [-Wreturn-type]
}
^
/usr/local/lib/python3.6/dist-packages/torch/include/c10/core/MemoryFormat.h: In function ‘std::vector<long int> c10::get_channels_last_strides_3d(c10::IntArrayRef)’:
/usr/local/lib/python3.6/dist-packages/torch/include/c10/core/MemoryFormat.h:94:1: warning: control reaches end of non-void function [-Wreturn-type]
}
^
error: command 'x86_64-linux-gnu-gcc' failed with exit status 1
Hi, I met the error when running script IRR-PWC_flyingChairs.sh.
And here are my environment: pytorch 0.4.1, cuda 8.0, cudnn 7.0.1
2022-03-04 17:26:08 ==> Commandline Arguments
2022-03-04 17:26:08 batch_size: 4
2022-03-04 17:26:08 batch_size_val: 4
2022-03-04 17:26:08 checkpoint: saved_check_point/pwcnet/IRR-PWC_flyingchairsOcc/checkpoint_best.ckpt
2022-03-04 17:26:08 checkpoint_exclude_params: ['']
2022-03-04 17:26:08 checkpoint_include_params: ['*']
2022-03-04 17:26:08 checkpoint_mode: resume_from_latest
2022-03-04 17:26:08 cuda: True
2022-03-04 17:26:08 evaluation: True
2022-03-04 17:26:08 lr_scheduler: None
2022-03-04 17:26:08 model: IRR_PWC
2022-03-04 17:26:08 model_div_flow: 0.05
2022-03-04 17:26:08 name: run
2022-03-04 17:26:08 num_iters: 1
2022-03-04 17:26:08 num_workers: 4
2022-03-04 17:26:08 optimizer: Adam
2022-03-04 17:26:08 optimizer_amsgrad: False
2022-03-04 17:26:08 optimizer_betas: (0.9, 0.999)
2022-03-04 17:26:08 optimizer_eps: 1e-08
2022-03-04 17:26:08 optimizer_group: None
2022-03-04 17:26:08 optimizer_lr: 0.001
2022-03-04 17:26:08 optimizer_weight_decay: 0
2022-03-04 17:26:08 save: saved_check_point/pwcnet/eval_temp/IRR_PWC
2022-03-04 17:26:08 save_result_bidirection: False
2022-03-04 17:26:08 save_result_flo: False
2022-03-04 17:26:08 save_result_img: False
2022-03-04 17:26:08 save_result_occ: False
2022-03-04 17:26:08 save_result_path_name:
2022-03-04 17:26:08 save_result_png: False
2022-03-04 17:26:08 seed: 1
2022-03-04 17:26:08 start_epoch: 1
2022-03-04 17:26:08 total_epochs: 10
2022-03-04 17:26:08 training_augmentation: None
2022-03-04 17:26:08 training_dataset: None
2022-03-04 17:26:08 training_loss: None
2022-03-04 17:26:08 validation_augmentation: None
2022-03-04 17:26:08 validation_dataset: SintelTrainingCleanFull
2022-03-04 17:26:08 validation_dataset_photometric_augmentations: False
2022-03-04 17:26:08 validation_dataset_root: /home/liuyuqiao/MPI-Sintel-complete/
2022-03-04 17:26:08 validation_key: epe
2022-03-04 17:26:08 validation_key_minimize: True
2022-03-04 17:26:08 validation_loss: MultiScaleEPE_PWC_Bi_Occ_upsample
2022-03-04 17:26:08 ==> Random Seeds
2022-03-04 17:26:08 Python seed: 1
2022-03-04 17:26:08 Numpy seed: 2
2022-03-04 17:26:08 Torch CPU seed: 3
2022-03-04 17:26:08 Torch CUDA seed: 4
2022-03-04 17:26:08 ==> Datasets
2022-03-04 17:26:08 Validation Dataset: SintelTrainingCleanFull
2022-03-04 17:26:08 basedir: training/clean/alley_1
2022-03-04 17:26:08 input1: [3, 436, 1024]
2022-03-04 17:26:08 input2: [3, 436, 1024]
2022-03-04 17:26:08 target1: [2, 436, 1024]
2022-03-04 17:26:08 target_occ1: [1, 436, 1024]
2022-03-04 17:26:08 num_examples: 1041
2022-03-04 17:26:08 ==> Runtime Augmentations
2022-03-04 17:26:08 training_augmentation: None
2022-03-04 17:26:08 validation_augmentation: None
2022-03-04 17:26:08 ==> Model and Loss
2022-03-04 17:26:08 Initializing MSRA
/usr/local/lib/python3.6/dist-packages/torch/cuda/init.py:114: UserWarning:
Found GPU0 GeForce RTX 2080 Ti which requires CUDA_VERSION >= 9000 for
optimal performance and fast startup time, but your PyTorch was compiled
with CUDA_VERSION 8000. Please install the correct PyTorch binary
using instructions from http://pytorch.org
warnings.warn(incorrect_binary_warn % (d, name, 9000, CUDA_VERSION))
2022-03-04 17:33:19 Batch Size: 4
2022-03-04 17:33:19 GPGPU: Cuda
2022-03-04 17:33:19 Network: IRR_PWC
2022-03-04 17:33:19 Number of parameters: 6362092
2022-03-04 17:33:19 Validation Key: epe
2022-03-04 17:33:19 Validation Loss: MultiScaleEPE_PWC_Bi_Occ_upsample
2022-03-04 17:33:19 ==> Checkpoint
2022-03-04 17:33:19 ==> Save Directory
2022-03-04 17:33:19 Save directory: saved_check_point/pwcnet/eval_temp/IRR_PWC
2022-03-04 17:33:19 ==> Optimizer
2022-03-04 17:33:19 Adam
2022-03-04 17:33:19 amsgrad: False
2022-03-04 17:33:19 betas: (0.9, 0.999)
2022-03-04 17:33:19 eps: 1e-08
2022-03-04 17:33:19 lr: 0.001
2022-03-04 17:33:19 weight_decay: 0
2022-03-04 17:33:19 ==> Learning Rate Scheduler
2022-03-04 17:33:19 class: None
2022-03-04 17:33:19 ==> Runtime
2022-03-04 17:33:19 start_epoch: 1
2022-03-04 17:33:19 total_epochs: 1
==> Progress: 0%| | 0/1 00:00<? ?s/ep
2022-03-04 17:33:19 ==> Epoch 1/1
==> Validate: 0%| | 0/261 00:00<? ?it/s
Traceback (most recent call last):
File "../../main.py", line 89, in
main()
File "../../main.py", line 86, in main
validation_augmentation=validation_augmentation)
File "/home/liuyuqiao/irr/runtime.py", line 555, in exec_runtime
augmentation=validation_augmentation).run()
File "/home/liuyuqiao/irr/runtime.py", line 427, in run
loss_dict_per_step, output_dict, batch_size = self._step(example_dict)
File "/home/liuyuqiao/irr/runtime.py", line 384, in _step
loss_dict, output_dict = self._model_and_loss(example_dict)
File "/usr/local/lib/python3.6/dist-packages/torch/nn/modules/module.py", line 477, in call
result = self.forward(*input, **kwargs)
File "/home/liuyuqiao/irr/configuration.py", line 49, in forward
output_dict = self._model(example_dict)
File "/usr/local/lib/python3.6/dist-packages/torch/nn/modules/module.py", line 477, in call
result = self.forward(*input, **kwargs)
File "/home/liuyuqiao/irr/models/IRR_PWC.py", line 59, in forward
x1_pyramid = self.feature_pyramid_extractor(x1_raw) + [x1_raw]
File "/usr/local/lib/python3.6/dist-packages/torch/nn/modules/module.py", line 477, in call
result = self.forward(*input, **kwargs)
File "/home/liuyuqiao/irr/models/pwc_modules.py", line 101, in forward
x = conv(x)
File "/usr/local/lib/python3.6/dist-packages/torch/nn/modules/module.py", line 477, in call
result = self.forward(*input, **kwargs)
File "/usr/local/lib/python3.6/dist-packages/torch/nn/modules/container.py", line 91, in forward
input = module(input)
File "/usr/local/lib/python3.6/dist-packages/torch/nn/modules/module.py", line 477, in call
result = self.forward(*input, **kwargs)
File "/usr/local/lib/python3.6/dist-packages/torch/nn/modules/container.py", line 91, in forward
input = module(input)
File "/usr/local/lib/python3.6/dist-packages/torch/nn/modules/module.py", line 477, in call
result = self.forward(*input, **kwargs)
File "/usr/local/lib/python3.6/dist-packages/torch/nn/modules/conv.py", line 301, in forward
self.padding, self.dilation, self.groups)
RuntimeError: CuDNN error: CUDNN_STATUS_MAPPING_ERROR
Looking forward to your reply
hi, I was trying to train my own datasets and use the MultiScaleEPE_PWC loss, but something is wrong as follows:
during debugging, I found in class MultiScaleEPE_PWC:
used the
but 'output' is a list containing 4 tensors, not a single tensor which has no attribute 'size()' , this is different from other loss class.
Could you tell me whether I should change '_downsample2d_as(target, output_ii)' into '_downsample2d_as(target, output_ii[ii])'?
I see in other loss class, '_downsample2d_as(target, output_ii[jj*2])' is used, what's the meaning of '*2'?
I tried install pytorch 1.5.0, it is reported a error that "Legacy autograd function with non-static forward method is deprecated. Please use new-style autograd function with static forward method."
I tried install pytorch 0.4.1,but it lacked of some .so file, such as libc10.so and so on.
Please tell me which pytorch version is expected? Or the code needs to be updated.
Could you provide a more detailed Readme?
I have tried to run the code on google colab using python 3.6, cuda 8.0 and pytorch 0.4.1 but get many errors related to torchvision and I have tried again to run it with newer versions of cuda (9.0 and 10) and pytorch (1.1) but got this error (no package called correlation_cuda) do you have any solution for correlation package problem please ?!
Hi!
Thanks for sharing such a excellent repo!
There are two questions after I read your paper and the code here.
a> in line 325 of augmentation.py
theta1 = self.apply_random_transforms_to_params(
theta0,
max_translate=0.2,
min_zoom=1.0, max_zoom=1.5,
min_squeeze=0.86, max_squeeze=1.16,
min_rotate=-0.2, max_rotate=0.2,
validate_size=[height, width])
in line 258
phi.uniform_(-min_rotate, max_rotate)
The rotation coefficient will be generated though the code above, but in this case, the rotation coefficient phi will be generated between [0.2, 0.2], which means the rotation coefficient will be constant 0.2. Did I miss something or you are meant to do so ?
b> According to the find_invalid() in file augmentation.py, the random generated affine params will be invalid when zoom < 1.0. When zoom < 1.0, the transformed images' border will lies out of source images. and marked invalid by find_invalid().
Expecting for your replies. Thanks again!
I want to write part of code to feed two images to the pre-trained model and get the output flow and visualize this flow
which part of code can help me please
the inference code not do so
when I test a video, the first frame and the second frame can output optical flow result corrently. However, when read the second frame and the third frame , it output an error RuntimeError: CUDA out of memory. Tried to allocate 140.00 MiB (GPU 0; 10.76 GiB total capacity; 9.70 GiB already allocated; 113.56 MiB free; 185.42 MiB cached), these error locate in output_dict = model.forward(input_dict), the detail is :
Traceback (most recent call last):
File "/irr/demo_vid.py", line 69, in
output_dict = model.forward(input_dict)
File "/irr/models/IRR_PWC.py", line 115, in forward
x_intm_occ_b, occ_res_b = self.occ_estimators(torch.cat([out_corr_relu_b, x2_1by1, occ_b], dim=1))
File "/Anaconda3/conda3/envs/irr/lib/python3.7/site-packages/torch/nn/modules/module.py", line 493, in call
result = self.forward(*input, **kwargs)
File "irr/irr/models/pwc_modules.py", line 184, in forward
x5 = torch.cat([self.conv5(x4), x4], dim=1)
RuntimeError: CUDA out of memory. Tried to allocate 140.00 MiB (GPU 0; 10.76 GiB total capacity; 9.70 GiB already allocated; 113.56 MiB free; 185.42 MiB cached) . please help me ,thanks
Hi,
Thanks for the great work!
Because this network can output occulusion directly, which is very convenient, but I am confused about whether there exists a preprocessing process in the data input and output part of this work.
When I loaded CKPT into model and tested it with two pictures, the network did have the output of flow and occlusion, but I don't know if there were more processing steps when data input and output.
Like PWC-net, it gives some hints:①the RGB channel is reversed to BGR, because this is what Caffe does.②after dividing by 255.0, no further normalization is conducted, because this particular PWC model in Caffe don't perform any image normalizations.③estimated flow should multiply by 20.0, because in training, the GT flow is divided by 20.0.
I really want to use this network to get information between two frames. For convenience, can you tell me how to quickly read pictures and output correct optical flow and occlusion information?
I ran "validation/pwcnet.sh" with the pre-trained model you had provided to test on the both Sintel and KITTI dataset.
The result for Sintel was similar to the one you had reported (Sintel clean: 3.13, Sintel final: 4.xx).
However, the EPE for KITTI12 and KITTI15 is really high (KITTI12: 23.xx, KITTI15: 17.xx).
Is this the right result to get?
BTW, thanks for sharing this amazing work.
Hi Junhwa,
Many thanks for you sharing this nice work. I have a little question for feature warping in PWC-Net in this repo and IRR-PWC.
Before warping feature, people always rescale the shape and value of the flow together, but you only upsample the flow shape, like
Lines 68 to 69 in 4d7f6aa
Lines 82 to 88 in 4d7f6aa
Could you please explain a little about these?
Best regards,
Meow
Hello,
I am not sure if this bug affects anything significantly and whether it is connected to precise GPU model.
I am getting strange patterns when testing the warping layer with down-sampled flow.
I use Sintel - alley_1, frame 5 for testing with the following code:
warping_layer = WarpingLayer()
div_flow = 0.05
_, _, h, w = fl_gt.shape
im1 = tf.interpolate(im1, (200,500), mode='bilinear', align_corners=True)
im2 = tf.interpolate(im2, (200,500), mode='bilinear', align_corners=True)
fl = tf.interpolate(fl_gt, (200,500), mode='bilinear', align_corners=True)
im2_warp = warping_layer.forward(im2, fl * div_flow, h, w, div_flow)
And this is the outputs I get:
The warped image contains weird patterns that look to me like numeric instability issue. When no down-scaling takes place, the patterns do not emerge.
I tracked down the problem to masking in the warping module. It seems that the patterns are caused by the condition on line 108. I suppose some correctly-warped pixels contain some number close to 1.0 but lower than one.
Lines 106 to 108 in 3c0468b
This can be easily fixed by replacing the line with:
mask = (mask >= 0.9999).float()
which makes the patterns disappear.
When testing the optical flow estimation with 'SintelTrainingFinalValid', I do not get a measurable AEPE decrease with the pre-trained model after the fix.
Hi,
Thanks for the great work!
Does this code support pytorch>=1.1.0 and cuda>=9.0?
I tried to run your irr code, but met so many problems, most of which are related to the pytorch/cuda version and corelation package. I have searched through google and other engines and tried almost every exsiting method(including cuda 8/9/10, torch 0.4.1/1.0.0/1.5.0), unfortunately still could not run normally. I saw many version problems are included in closed issues without being solved, I was wondering whether you have checked your code and why you closed so many questions. If there are bugs in your code, you need to check your code and solve the problems instead of covering them.
Hi,
First of all I'd like to thank you so much for sharing this great repo.
As a sanity check, I am trying to reproduce your results on KITTI by finetuning from things3d, using the checkpoint of "IRR-PWC_things3d" that you supply, but so far without success.
I ran your script "IRR-PWC_kitti_train.sh" which does exactly that , without changing any parameters, and all the training ran smoothly and finished without any errors.
However, when I am evaluating the newly created checkpoint on KITTI and comparing it with your own supplied checkpoint (IRR-PWC_kitti), based on your evaluation script in "IRR-PWC_kitti_train.sh", I get completely different results:
So my reproduced error on KITTI is two times worse than your own checkpoint. And even worse, I got almost same error after finetune and before finetune, which means that this finetune did nothing practically.
Could you think of anything that could explain this strange behavior, and my inability to reproduce your results, using your scripts?
Thank you,
Danny
Hi @hurjunhwa , I am trying to test the MPWC-Net++ code by Impact laboratory. They referred to this repository.
I am working in kaggle notebook. I want to import the Correlation
class from this repo in my notebook.
To do that i first cloned the repo by !git clone https://github.com/visinf/irr.git
, then
%cd irr/models/correlation_package/
!pip install
to change install the package.
but i get a huge error :(
Now how do i install the package?
i tried this from .correlation_package.correlation import Correlation
but it produces an error too
How do I import this directly from this repo in my kaggle notebook?
Looking for any help
Hi,thanks for your share code, that's great.
But I have some questions. If I want to use some images for inferenceing, what should I do?
Whether it’s in a script in scripts/validation, just fill in the "(YOUR PATH)" field.
# datasets
SINTEL_HOME=(YOUR PATH)/MPI-Sintel-complete/
Then run XXX.sh
Because I’m just new to deep learning, I don’t know much about the code.
Hi
What inference speed should I (approximately) expect for the PWC_IRR model for an input image of 960,540,3?
On my RTX 2070 it runs at 1.5 FPS, is it supposed to be faster?
Thanks
Hi,
I really appreciate your work and believe that it has a high impact on the field.
I have high-frequency data and I have used original PWC-Net. Due to the presence of two downsampling (The final output is 1/4 input), the results were not accurate enough. In my previous paper, I removed the stride=2 and used stride=1. The results were improved significantly but the problem is that the network cannot estimate high displacement anymore. To solve it, I want to have 5 output levels instead of 4 and I have seen were to change but just changing number of outputs does not work. I want to know what else I need to change. (I use PWC-Net+irr which does not have occlusion detection and upsampling layer)
Thanks in advance for your response.
Regards,
Ali
Hi authors of irr, thanks for your great work in optical flow estimation.
I am a little confused by this if
statement in all the loss functions in the repo:
if (f_loss.data > o_loss.data).numpy:
f_l_w = 1
o_l_w = f_loss / o_loss
else:
f_l_w = o_loss / f_loss
o_l_w = 1
I understand that the code wants to balance flow loss and occ loss. However, (f_loss.data > o_loss.data).numpy
always return True
and the program will never go to the else
statement.
Any help would be appreciated!
Hi authors of irr, I discovered that there is a gradient explosion when training IRR_PWC
after I pull the update in losses.py to solve this issue.
I trained for several times and gradient explosion still occurred. Below is the logbook.txt of the training process.
========================================== logbook.txt ==============================================
[2021-04-27 19:28:49] ==> Commandline Arguments
[2021-04-27 19:28:49] batch_size: 4
[2021-04-27 19:28:49] batch_size_val: 4
[2021-04-27 19:28:49] checkpoint: None
[2021-04-27 19:28:49] cuda: True
[2021-04-27 19:28:49] evaluation: False
[2021-04-27 19:28:49] lr_scheduler: MultiStepLR
[2021-04-27 19:28:49] lr_scheduler_gamma: 0.5
[2021-04-27 19:28:49] lr_scheduler_last_epoch: -1
[2021-04-27 19:28:49] lr_scheduler_milestones: [54, 72, 90]
[2021-04-27 19:28:49] model: IRR_PWC
[2021-04-27 19:28:49] model_div_flow: 0.05
[2021-04-27 19:28:49] name: run
[2021-04-27 19:28:49] num_iters: 1
[2021-04-27 19:28:49] num_workers: 4
[2021-04-27 19:28:49] optimizer: Adam
[2021-04-27 19:28:49] optimizer_amsgrad: False
[2021-04-27 19:28:49] optimizer_betas: (0.9, 0.999)
[2021-04-27 19:28:49] optimizer_eps: 1e-08
[2021-04-27 19:28:49] optimizer_group: None
[2021-04-27 19:28:49] optimizer_lr: 0.0001
[2021-04-27 19:28:49] optimizer_weight_decay: 0.0004
[2021-04-27 19:28:49] save: experiments/IRR_PWC-20210427-192845
[2021-04-27 19:28:49] save_result_bidirection: False
[2021-04-27 19:28:49] save_result_flo: False
[2021-04-27 19:28:49] save_result_img: False
[2021-04-27 19:28:49] save_result_occ: False
[2021-04-27 19:28:49] save_result_path_name:
[2021-04-27 19:28:49] save_result_png: False
[2021-04-27 19:28:49] seed: 1
[2021-04-27 19:28:49] start_epoch: 1
[2021-04-27 19:28:49] total_epochs: 108
[2021-04-27 19:28:49] training_augmentation: RandomAffineFlowOcc
[2021-04-27 19:28:49] training_augmentation_addnoise: True
[2021-04-27 19:28:49] training_augmentation_crop: None
[2021-04-27 19:28:49] training_dataset: FlyingChairsOccTrain
[2021-04-27 19:28:49] training_dataset_photometric_augmentations: True
[2021-04-27 19:28:49] training_dataset_root: /mnt/lustre/share_data/longzeren/FlyingChairsOcc/data
[2021-04-27 19:28:49] training_key: total_loss
[2021-04-27 19:28:49] training_loss: MultiScaleEPE_PWC_Bi_Occ_upsample
[2021-04-27 19:28:49] validation_augmentation: None
[2021-04-27 19:28:49] validation_dataset: FlyingChairsOccValid
[2021-04-27 19:28:49] validation_dataset_photometric_augmentations: False
[2021-04-27 19:28:49] validation_dataset_root: /mnt/lustre/share_data/longzeren/FlyingChairsOcc/data
[2021-04-27 19:28:49] validation_key: epe
[2021-04-27 19:28:49] validation_key_minimize: True
[2021-04-27 19:28:49] validation_loss: MultiScaleEPE_PWC_Bi_Occ_upsample
[2021-04-27 19:28:49] ==> Random Seeds
[2021-04-27 19:28:49] Python seed: 1
[2021-04-27 19:28:49] Numpy seed: 2
[2021-04-27 19:28:49] Torch CPU seed: 3
[2021-04-27 19:28:49] Torch CUDA seed: 4
[2021-04-27 19:28:49] ==> Datasets
[2021-04-27 19:28:51] Training Dataset: FlyingChairsOccTrain
[2021-04-27 19:28:53] input1: [3, 384, 512]
[2021-04-27 19:28:53] input2: [3, 384, 512]
[2021-04-27 19:28:53] target1: [2, 384, 512]
[2021-04-27 19:28:53] target2: [2, 384, 512]
[2021-04-27 19:28:53] target_occ1: [1, 384, 512]
[2021-04-27 19:28:53] target_occ2: [1, 384, 512]
[2021-04-27 19:28:53] num_examples: 22232
[2021-04-27 19:28:54] Validation Dataset: FlyingChairsOccValid
[2021-04-27 19:28:54] input1: [3, 384, 512]
[2021-04-27 19:28:54] input2: [3, 384, 512]
[2021-04-27 19:28:54] target1: [2, 384, 512]
[2021-04-27 19:28:54] target2: [2, 384, 512]
[2021-04-27 19:28:54] target_occ1: [1, 384, 512]
[2021-04-27 19:28:54] target_occ2: [1, 384, 512]
[2021-04-27 19:28:54] num_examples: 640
[2021-04-27 19:28:54] ==> Runtime Augmentations
[2021-04-27 19:28:54] training_augmentation: RandomAffineFlowOcc
[2021-04-27 19:28:54] addnoise: True
[2021-04-27 19:28:54] crop: None
[2021-04-27 19:28:59] validation_augmentation: None
[2021-04-27 19:28:59] ==> Model and Loss
[2021-04-27 19:28:59] Initializing MSRA
[2021-04-27 19:29:00] Batch Size: 4
[2021-04-27 19:29:00] GPGPU: Cuda
[2021-04-27 19:29:00] Network: IRR_PWC
[2021-04-27 19:29:00] Number of parameters: 6362092
[2021-04-27 19:29:00] Training Key: total_loss
[2021-04-27 19:29:00] Training Loss: MultiScaleEPE_PWC_Bi_Occ_upsample
[2021-04-27 19:29:00] Validation Key: epe
[2021-04-27 19:29:00] Validation Loss: MultiScaleEPE_PWC_Bi_Occ_upsample
[2021-04-27 19:29:00] ==> Checkpoint
[2021-04-27 19:29:00] No checkpoint given.
[2021-04-27 19:29:00] Starting from scratch with random initialization.
[2021-04-27 19:29:00] ==> Save Directory
[2021-04-27 19:29:00] Save directory: experiments/IRR_PWC-20210427-192845
[2021-04-27 19:29:00] ==> Optimizer
[2021-04-27 19:29:00] Adam
[2021-04-27 19:29:00] amsgrad: False
[2021-04-27 19:29:00] betas: (0.9, 0.999)
[2021-04-27 19:29:00] eps: 1e-08
[2021-04-27 19:29:00] lr: 0.0001
[2021-04-27 19:29:00] weight_decay: 0.0004
[2021-04-27 19:29:00] ==> Learning Rate Scheduler
[2021-04-27 19:29:00] class: MultiStepLR
[2021-04-27 19:29:00] gamma: 0.5
[2021-04-27 19:29:00] last_epoch: -1
[2021-04-27 19:29:00] milestones: [54, 72, 90]
[2021-04-27 19:29:00] ==> Runtime
[2021-04-27 19:29:00] start_epoch: 1
[2021-04-27 19:29:00] total_epochs: 108
[2021-04-27 19:29:00]
[2021-04-27 19:29:00] ==> Epoch 1/108
[2021-04-27 19:29:00] lr: 0.0001
[2021-04-27 21:00:11] ==> Train: 100%|##########| 5558/5558 1:31:11<00:00 1.02it/s flow_loss_ema=192.9533, occ_loss_ema=52.6580, total_loss_ema=386.1001
[2021-04-27 21:01:06] ==> Validate: 100%|##########| 160/160 00:54<00:00 2.93it/s F1_avg=0.1559, epe_avg=70.1332
[2021-04-27 21:01:06] ==> Progress: 0%| | 0/108 1:32:06<? ?s/ep best_epe_avg=70.1332
[2021-04-27 21:01:06] Saved checkpoint as best model..
[2021-04-27 21:01:06]
[2021-04-27 21:01:06] ==> Epoch 2/108
[2021-04-27 21:01:06] lr: 0.0001
[2021-04-27 21:53:11] ==> Train: 57%|#####7 | 3175/5558 52:05<39:05 1.02it/s flow_loss_ema=13349111.8987, occ_loss_ema=52.0983, total_loss_ema=26698223.7973
[2021-04-27 21:53:12] ==> Progress: 1%| | 1/108 2:24:12<257:09:48 8652.23s/ep best_epe_avg=70.1332
=================================================================================================
My software environment is as follow:
python 3.7.6
torch 1.5.0
cuda v9.0.176
My hardware environment is as follow:
CPU Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz
GPU GeForce GTX 1080
Any help will be appreciated.
I have gotten this error while trying to train the model, what is the problem please?
Hi,
My pc environment is pytorch 1.1.0, cuda 9.2. I met an error during installing the correlation_package. Here is error:
running install
running bdist_egg
running egg_info
writing correlation_cuda.egg-info/PKG-INFO
writing dependency_links to correlation_cuda.egg-info/dependency_links.txt
writing top-level names to correlation_cuda.egg-info/top_level.txt
reading manifest file 'correlation_cuda.egg-info/SOURCES.txt'
writing manifest file 'correlation_cuda.egg-info/SOURCES.txt'
installing library code to build/bdist.linux-x86_64/egg
running install_lib
running build_ext
building 'correlation_cuda' extension
gcc -pthread -B /home/shiz31/anaconda3/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/home/shiz31/anaconda3/lib/python3.7/site-packages/torch/include -I/home/shiz31/anaconda3/lib/python3.7/site-packages/torch/include/torch/csrc/api/include -I/home/shiz31/anaconda3/lib/python3.7/site-packages/torch/include/TH -I/home/shiz31/anaconda3/lib/python3.7/site-packages/torch/include/THC -I/usr/local/cuda/include -I/home/shiz31/anaconda3/include/python3.7m -c correlation_cuda.cc -o build/temp.linux-x86_64-3.7/correlation_cuda.o -std=c++11 -DTORCH_API_INCLUDE_EXTENSION_H -DTORCH_EXTENSION_NAME=correlation_cuda -D_GLIBCXX_USE_CXX11_ABI=1
cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++
/usr/local/cuda/bin/nvcc -I/home/shiz31/anaconda3/lib/python3.7/site-packages/torch/include -I/home/shiz31/anaconda3/lib/python3.7/site-packages/torch/include/torch/csrc/api/include -I/home/shiz31/anaconda3/lib/python3.7/site-packages/torch/include/TH -I/home/shiz31/anaconda3/lib/python3.7/site-packages/torch/include/THC -I/usr/local/cuda/include -I/home/shiz31/anaconda3/include/python3.7m -c correlation_cuda_kernel.cu -o build/temp.linux-x86_64-3.7/correlation_cuda_kernel.o -D__CUDA_NO_HALF_OPERATORS__ -D__CUDA_NO_HALF_CONVERSIONS__ -D__CUDA_NO_HALF2_OPERATORS__ --compiler-options '-fPIC' -gencode arch=compute_50,code=sm_50 -gencode arch=compute_52,code=sm_52 -gencode arch=compute_60,code=sm_60 -gencode arch=compute_61,code=sm_61 -gencode=arch=compute_70,code=sm_70 -gencode=arch=compute_70,code=compute_70 -ccbin /usr/bin/gcc -DTORCH_API_INCLUDE_EXTENSION_H -DTORCH_EXTENSION_NAME=correlation_cuda -D_GLIBCXX_USE_CXX11_ABI=1 -std=c++11
/home/shiz31/anaconda3/lib/python3.7/site-packages/torch/include/ATen/cuda/NumericLimits.cuh(83): warning: calling a constexpr host function("from_bits") from a host device function("lowest") is not allowed. The experimental flag '--expt-relaxed-constexpr' can be used to allow this.
/home/shiz31/anaconda3/lib/python3.7/site-packages/torch/include/ATen/cuda/NumericLimits.cuh(84): warning: calling a constexpr host function("from_bits") from a host device function("max") is not allowed. The experimental flag '--expt-relaxed-constexpr' can be used to allow this.
/home/shiz31/anaconda3/lib/python3.7/site-packages/torch/include/ATen/cuda/NumericLimits.cuh(85): warning: calling a constexpr host function("from_bits") from a host device function("lower_bound") is not allowed. The experimental flag '--expt-relaxed-constexpr' can be used to allow this.
/home/shiz31/anaconda3/lib/python3.7/site-packages/torch/include/ATen/cuda/NumericLimits.cuh(86): warning: calling a constexpr host function("from_bits") from a host device function("upper_bound") is not allowed. The experimental flag '--expt-relaxed-constexpr' can be used to allow this.
/home/shiz31/anaconda3/lib/python3.7/site-packages/torch/include/ATen/cuda/NumericLimits.cuh(83): warning: calling a constexpr host function("from_bits") from a host device function("lowest") is not allowed. The experimental flag '--expt-relaxed-constexpr' can be used to allow this.
/home/shiz31/anaconda3/lib/python3.7/site-packages/torch/include/ATen/cuda/NumericLimits.cuh(84): warning: calling a constexpr host function("from_bits") from a host device function("max") is not allowed. The experimental flag '--expt-relaxed-constexpr' can be used to allow this.
/home/shiz31/anaconda3/lib/python3.7/site-packages/torch/include/ATen/cuda/NumericLimits.cuh(85): warning: calling a constexpr host function("from_bits") from a host device function("lower_bound") is not allowed. The experimental flag '--expt-relaxed-constexpr' can be used to allow this.
/home/shiz31/anaconda3/lib/python3.7/site-packages/torch/include/ATen/cuda/NumericLimits.cuh(86): warning: calling a constexpr host function("from_bits") from a host device function("upper_bound") is not allowed. The experimental flag '--expt-relaxed-constexpr' can be used to allow this.
/home/shiz31/anaconda3/lib/python3.7/site-packages/torch/include/ATen/cuda/NumericLimits.cuh(83): warning: calling a constexpr host function("from_bits") from a host device function("lowest") is not allowed. The experimental flag '--expt-relaxed-constexpr' can be used to allow this.
/home/shiz31/anaconda3/lib/python3.7/site-packages/torch/include/ATen/cuda/NumericLimits.cuh(84): warning: calling a constexpr host function("from_bits") from a host device function("max") is not allowed. The experimental flag '--expt-relaxed-constexpr' can be used to allow this.
/home/shiz31/anaconda3/lib/python3.7/site-packages/torch/include/ATen/cuda/NumericLimits.cuh(85): warning: calling a constexpr host function("from_bits") from a host device function("lower_bound") is not allowed. The experimental flag '--expt-relaxed-constexpr' can be used to allow this.
/home/shiz31/anaconda3/lib/python3.7/site-packages/torch/include/ATen/cuda/NumericLimits.cuh(86): warning: calling a constexpr host function("from_bits") from a host device function("upper_bound") is not allowed. The experimental flag '--expt-relaxed-constexpr' can be used to allow this.
/home/shiz31/anaconda3/lib/python3.7/site-packages/torch/include/ATen/cuda/NumericLimits.cuh(83): warning: calling a constexpr host function("from_bits") from a host device function("lowest") is not allowed. The experimental flag '--expt-relaxed-constexpr' can be used to allow this.
/home/shiz31/anaconda3/lib/python3.7/site-packages/torch/include/ATen/cuda/NumericLimits.cuh(84): warning: calling a constexpr host function("from_bits") from a host device function("max") is not allowed. The experimental flag '--expt-relaxed-constexpr' can be used to allow this.
/home/shiz31/anaconda3/lib/python3.7/site-packages/torch/include/ATen/cuda/NumericLimits.cuh(85): warning: calling a constexpr host function("from_bits") from a host device function("lower_bound") is not allowed. The experimental flag '--expt-relaxed-constexpr' can be used to allow this.
/home/shiz31/anaconda3/lib/python3.7/site-packages/torch/include/ATen/cuda/NumericLimits.cuh(86): warning: calling a constexpr host function("from_bits") from a host device function("upper_bound") is not allowed. The experimental flag '--expt-relaxed-constexpr' can be used to allow this.
/home/shiz31/anaconda3/lib/python3.7/site-packages/torch/include/ATen/cuda/NumericLimits.cuh(83): warning: calling a constexpr host function("from_bits") from a host device function("lowest") is not allowed. The experimental flag '--expt-relaxed-constexpr' can be used to allow this.
/home/shiz31/anaconda3/lib/python3.7/site-packages/torch/include/ATen/cuda/NumericLimits.cuh(84): warning: calling a constexpr host function("from_bits") from a host device function("max") is not allowed. The experimental flag '--expt-relaxed-constexpr' can be used to allow this.
/home/shiz31/anaconda3/lib/python3.7/site-packages/torch/include/ATen/cuda/NumericLimits.cuh(85): warning: calling a constexpr host function("from_bits") from a host device function("lower_bound") is not allowed. The experimental flag '--expt-relaxed-constexpr' can be used to allow this.
/home/shiz31/anaconda3/lib/python3.7/site-packages/torch/include/ATen/cuda/NumericLimits.cuh(86): warning: calling a constexpr host function("from_bits") from a host device function("upper_bound") is not allowed. The experimental flag '--expt-relaxed-constexpr' can be used to allow this.
/usr/include/c++/6/tuple: In instantiation of ‘static constexpr bool std::_TC<, _Elements>::_MoveConstructibleTuple() [with _UElements = {std::tuple<at::Tensor, at::Tensor, at::Tensor>}; bool = true; _Elements = {at::Tensor, at::Tensor, at::Tensor}]’:
/usr/include/c++/6/tuple:626:248: required by substitution of ‘template<class ... _UElements, typename std::enable_if<(((std::_TC<(sizeof... (_UElements) == 1), at::Tensor, at::Tensor, at::Tensor>::_NotSameTuple<_UElements ...>() && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor>::_MoveConstructibleTuple<_UElements ...>()) && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor>::_ImplicitlyMoveConvertibleTuple<_UElements ...>()) && (3ul >= 1)), bool>::type > constexpr std::tuple< >::tuple(_UElements&& ...) [with _UElements = {std::tuple<at::Tensor, at::Tensor, at::Tensor>}; typename std::enable_if<(((std::_TC<(sizeof... (_UElements) == 1), at::Tensor, at::Tensor, at::Tensor>::_NotSameTuple<_UElements ...>() && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor>::_MoveConstructibleTuple<_UElements ...>()) && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor>::_ImplicitlyMoveConvertibleTuple<_UElements ...>()) && (3ul >= 1)), bool>::type = ]’
/home/shiz31/anaconda3/lib/python3.7/site-packages/torch/include/ATen/core/TensorMethods.h:1181:57: required from here
/usr/include/c++/6/tuple:483:67: error: mismatched argument pack lengths while expanding ‘std::is_constructible<_Elements, _UElements&&>’
return _and<is_constructible<_Elements, _UElements&&>...>::value;
^~~~~
/usr/include/c++/6/tuple:484:1: error: body of constexpr function ‘static constexpr bool std::_TC<, _Elements>::_MoveConstructibleTuple() [with _UElements = {std::tuple<at::Tensor, at::Tensor, at::Tensor>}; bool = true; _Elements = {at::Tensor, at::Tensor, at::Tensor}]’ not a return-statement
}
^
/usr/include/c++/6/tuple: In instantiation of ‘static constexpr bool std::_TC<, _Elements>::_ImplicitlyMoveConvertibleTuple() [with _UElements = {std::tuple<at::Tensor, at::Tensor, at::Tensor>}; bool = true; _Elements = {at::Tensor, at::Tensor, at::Tensor}]’:
/usr/include/c++/6/tuple:626:362: required by substitution of ‘template<class ... _UElements, typename std::enable_if<(((std::_TC<(sizeof... (_UElements) == 1), at::Tensor, at::Tensor, at::Tensor>::_NotSameTuple<_UElements ...>() && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor>::_MoveConstructibleTuple<_UElements ...>()) && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor>::_ImplicitlyMoveConvertibleTuple<_UElements ...>()) && (3ul >= 1)), bool>::type > constexpr std::tuple< >::tuple(_UElements&& ...) [with _UElements = {std::tuple<at::Tensor, at::Tensor, at::Tensor>}; typename std::enable_if<(((std::_TC<(sizeof... (_UElements) == 1), at::Tensor, at::Tensor, at::Tensor>::_NotSameTuple<_UElements ...>() && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor>::_MoveConstructibleTuple<_UElements ...>()) && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor>::_ImplicitlyMoveConvertibleTuple<_UElements ...>()) && (3ul >= 1)), bool>::type = ]’
/home/shiz31/anaconda3/lib/python3.7/site-packages/torch/include/ATen/core/TensorMethods.h:1181:57: required from here
/usr/include/c++/6/tuple:489:65: error: mismatched argument pack lengths while expanding ‘std::is_convertible<_UElements&&, _Elements>’
return _and<is_convertible<_UElements&&, _Elements>...>::value;
^~~~~
/usr/include/c++/6/tuple:490:1: error: body of constexpr function ‘static constexpr bool std::_TC<, _Elements>::_ImplicitlyMoveConvertibleTuple() [with _UElements = {std::tuple<at::Tensor, at::Tensor, at::Tensor>}; bool = true; _Elements = {at::Tensor, at::Tensor, at::Tensor}]’ not a return-statement
}
^
/usr/include/c++/6/tuple: In instantiation of ‘static constexpr bool std::_TC<, _Elements>::_NonNestedTuple() [with _SrcTuple = const std::tuple<at::Tensor, at::Tensor, at::Tensor>&; bool = true; _Elements = {at::Tensor, at::Tensor, at::Tensor}]’:
/usr/include/c++/6/tuple:662:419: required by substitution of ‘template<class ... _UElements, class _Dummy, typename std::enable_if<((std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor>::_ConstructibleTuple<_UElements ...>() && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor>::_ImplicitlyConvertibleTuple<_UElements ...>()) && std::_TC<(std::is_same<_Dummy, void>::value && (1ul == 1)), at::Tensor, at::Tensor, at::Tensor>::_NonNestedTuple<const tuple<_Elements ...>&>()), bool>::type > constexpr std::tuple< >::tuple(const std::tuple<_Args1 ...>&) [with _UElements = {at::Tensor, at::Tensor, at::Tensor}; _Dummy = void; typename std::enable_if<((std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor>::_ConstructibleTuple<_UElements ...>() && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor>::_ImplicitlyConvertibleTuple<_UElements ...>()) && std::_TC<(std::is_same<_Dummy, void>::value && (1ul == 1)), at::Tensor, at::Tensor, at::Tensor>::_NonNestedTuple<const tuple<_Elements ...>&>()), bool>::type = ]’
/home/shiz31/anaconda3/lib/python3.7/site-packages/torch/include/ATen/core/TensorMethods.h:1181:57: required from here
/usr/include/c++/6/tuple:495:244: error: wrong number of template arguments (4, should be 2)
return _and<_not<is_same<tuple<_Elements...>,
^
/usr/include/c++/6/type_traits:1558:8: note: provided for ‘template<class _From, class _To> struct std::is_convertible’
struct is_convertible
^~~~~~~~~~~~~~
/usr/include/c++/6/tuple:502:1: error: body of constexpr function ‘static constexpr bool std::_TC<, _Elements>::_NonNestedTuple() [with _SrcTuple = const std::tuple<at::Tensor, at::Tensor, at::Tensor>&; bool = true; _Elements = {at::Tensor, at::Tensor, at::Tensor}]’ not a return-statement
}
^
/usr/include/c++/6/tuple: In instantiation of ‘static constexpr bool std::_TC<, _Elements>::_NonNestedTuple() [with _SrcTuple = std::tuple<at::Tensor, at::Tensor, at::Tensor>&&; bool = true; _Elements = {at::Tensor, at::Tensor, at::Tensor}]’:
/usr/include/c++/6/tuple:686:422: required by substitution of ‘template<class ... _UElements, class _Dummy, typename std::enable_if<((std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor>::_MoveConstructibleTuple<_UElements ...>() && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor>::_ImplicitlyMoveConvertibleTuple<_UElements ...>()) && std::_TC<(std::is_same<_Dummy, void>::value && (1ul == 1)), at::Tensor, at::Tensor, at::Tensor>::_NonNestedTuple<tuple<_Elements ...>&&>()), bool>::type > constexpr std::tuple< >::tuple(std::tuple<_Args1 ...>&&) [with _UElements = {at::Tensor, at::Tensor, at::Tensor}; _Dummy = void; typename std::enable_if<((std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor>::_MoveConstructibleTuple<_UElements ...>() && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor>::_ImplicitlyMoveConvertibleTuple<_UElements ...>()) && std::_TC<(std::is_same<_Dummy, void>::value && (1ul == 1)), at::Tensor, at::Tensor, at::Tensor>::_NonNestedTuple<tuple<_Elements ...>&&>()), bool>::type = ]’
/home/shiz31/anaconda3/lib/python3.7/site-packages/torch/include/ATen/core/TensorMethods.h:1181:57: required from here
/usr/include/c++/6/tuple:495:244: error: wrong number of template arguments (4, should be 2)
return _and<_not<is_same<tuple<_Elements...>,
^
/usr/include/c++/6/type_traits:1558:8: note: provided for ‘template<class _From, class _To> struct std::is_convertible’
struct is_convertible
^~~~~~~~~~~~~~
/usr/include/c++/6/tuple:502:1: error: body of constexpr function ‘static constexpr bool std::_TC<, _Elements>::_NonNestedTuple() [with _SrcTuple = std::tuple<at::Tensor, at::Tensor, at::Tensor>&&; bool = true; _Elements = {at::Tensor, at::Tensor, at::Tensor}]’ not a return-statement
}
^
/usr/include/c++/6/tuple: In instantiation of ‘static constexpr bool std::_TC<, _Elements>::_MoveConstructibleTuple() [with _UElements = {std::tuple<at::Tensor&, at::Tensor&, at::Tensor&>}; bool = true; _Elements = {at::Tensor&, at::Tensor&, at::Tensor&}]’:
/usr/include/c++/6/tuple:626:248: required by substitution of ‘template<class ... _UElements, typename std::enable_if<(((std::_TC<(sizeof... (_UElements) == 1), at::Tensor&, at::Tensor&, at::Tensor&>::_NotSameTuple<_UElements ...>() && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor&, at::Tensor&, at::Tensor&>::_MoveConstructibleTuple<_UElements ...>()) && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor&, at::Tensor&, at::Tensor&>::_ImplicitlyMoveConvertibleTuple<_UElements ...>()) && (3ul >= 1)), bool>::type > constexpr std::tuple< >::tuple(_UElements&& ...) [with _UElements = {std::tuple<at::Tensor&, at::Tensor&, at::Tensor&>}; typename std::enable_if<(((std::_TC<(sizeof... (_UElements) == 1), at::Tensor&, at::Tensor&, at::Tensor&>::_NotSameTuple<_UElements ...>() && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor&, at::Tensor&, at::Tensor&>::_MoveConstructibleTuple<_UElements ...>()) && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor&, at::Tensor&, at::Tensor&>::_ImplicitlyMoveConvertibleTuple<_UElements ...>()) && (3ul >= 1)), bool>::type = ]’
/home/shiz31/anaconda3/lib/python3.7/site-packages/torch/include/ATen/Functions.h:2426:85: required from here
/usr/include/c++/6/tuple:483:67: error: mismatched argument pack lengths while expanding ‘std::is_constructible<_Elements, _UElements&&>’
return _and<is_constructible<_Elements, _UElements&&>...>::value;
^~~~~
/usr/include/c++/6/tuple:484:1: error: body of constexpr function ‘static constexpr bool std::_TC<, _Elements>::_MoveConstructibleTuple() [with _UElements = {std::tuple<at::Tensor&, at::Tensor&, at::Tensor&>}; bool = true; _Elements = {at::Tensor&, at::Tensor&, at::Tensor&}]’ not a return-statement
}
^
/usr/include/c++/6/tuple: In instantiation of ‘static constexpr bool std::_TC<, _Elements>::_ImplicitlyMoveConvertibleTuple() [with _UElements = {std::tuple<at::Tensor&, at::Tensor&, at::Tensor&>}; bool = true; _Elements = {at::Tensor&, at::Tensor&, at::Tensor&}]’:
/usr/include/c++/6/tuple:626:362: required by substitution of ‘template<class ... _UElements, typename std::enable_if<(((std::_TC<(sizeof... (_UElements) == 1), at::Tensor&, at::Tensor&, at::Tensor&>::_NotSameTuple<_UElements ...>() && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor&, at::Tensor&, at::Tensor&>::_MoveConstructibleTuple<_UElements ...>()) && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor&, at::Tensor&, at::Tensor&>::_ImplicitlyMoveConvertibleTuple<_UElements ...>()) && (3ul >= 1)), bool>::type > constexpr std::tuple< >::tuple(_UElements&& ...) [with _UElements = {std::tuple<at::Tensor&, at::Tensor&, at::Tensor&>}; typename std::enable_if<(((std::_TC<(sizeof... (_UElements) == 1), at::Tensor&, at::Tensor&, at::Tensor&>::_NotSameTuple<_UElements ...>() && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor&, at::Tensor&, at::Tensor&>::_MoveConstructibleTuple<_UElements ...>()) && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor&, at::Tensor&, at::Tensor&>::_ImplicitlyMoveConvertibleTuple<_UElements ...>()) && (3ul >= 1)), bool>::type = ]’
/home/shiz31/anaconda3/lib/python3.7/site-packages/torch/include/ATen/Functions.h:2426:85: required from here
/usr/include/c++/6/tuple:489:65: error: mismatched argument pack lengths while expanding ‘std::is_convertible<_UElements&&, _Elements>’
return _and<is_convertible<_UElements&&, _Elements>...>::value;
^~~~~
/usr/include/c++/6/tuple:490:1: error: body of constexpr function ‘static constexpr bool std::_TC<, _Elements>::_ImplicitlyMoveConvertibleTuple() [with _UElements = {std::tuple<at::Tensor&, at::Tensor&, at::Tensor&>}; bool = true; _Elements = {at::Tensor&, at::Tensor&, at::Tensor&}]’ not a return-statement
}
^
/usr/include/c++/6/tuple: In instantiation of ‘static constexpr bool std::_TC<, _Elements>::_NonNestedTuple() [with _SrcTuple = const std::tuple<at::Tensor&, at::Tensor&, at::Tensor&>&; bool = true; _Elements = {at::Tensor&, at::Tensor&, at::Tensor&}]’:
/usr/include/c++/6/tuple:662:419: required by substitution of ‘template<class ... _UElements, class _Dummy, typename std::enable_if<((std::_TC<(1ul == sizeof... (_UElements)), at::Tensor&, at::Tensor&, at::Tensor&>::_ConstructibleTuple<_UElements ...>() && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor&, at::Tensor&, at::Tensor&>::_ImplicitlyConvertibleTuple<_UElements ...>()) && std::_TC<(std::is_same<_Dummy, void>::value && (1ul == 1)), at::Tensor&, at::Tensor&, at::Tensor&>::_NonNestedTuple<const tuple<_Elements ...>&>()), bool>::type > constexpr std::tuple< >::tuple(const std::tuple<_Args1 ...>&) [with _UElements = {at::Tensor&, at::Tensor&, at::Tensor&}; _Dummy = void; typename std::enable_if<((std::_TC<(1ul == sizeof... (_UElements)), at::Tensor&, at::Tensor&, at::Tensor&>::_ConstructibleTuple<_UElements ...>() && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor&, at::Tensor&, at::Tensor&>::_ImplicitlyConvertibleTuple<_UElements ...>()) && std::_TC<(std::is_same<_Dummy, void>::value && (1ul == 1)), at::Tensor&, at::Tensor&, at::Tensor&>::_NonNestedTuple<const tuple<_Elements ...>&>()), bool>::type = ]’
/home/shiz31/anaconda3/lib/python3.7/site-packages/torch/include/ATen/Functions.h:2426:85: required from here
/usr/include/c++/6/tuple:495:244: error: wrong number of template arguments (4, should be 2)
return _and<_not<is_same<tuple<_Elements...>,
^
/usr/include/c++/6/type_traits:1558:8: note: provided for ‘template<class _From, class _To> struct std::is_convertible’
struct is_convertible
^~~~~~~~~~~~~~
/usr/include/c++/6/tuple:502:1: error: body of constexpr function ‘static constexpr bool std::_TC<, _Elements>::_NonNestedTuple() [with _SrcTuple = const std::tuple<at::Tensor&, at::Tensor&, at::Tensor&>&; bool = true; _Elements = {at::Tensor&, at::Tensor&, at::Tensor&}]’ not a return-statement
}
^
/usr/include/c++/6/tuple: In instantiation of ‘static constexpr bool std::_TC<, _Elements>::_NonNestedTuple() [with _SrcTuple = std::tuple<at::Tensor&, at::Tensor&, at::Tensor&>&&; bool = true; _Elements = {at::Tensor&, at::Tensor&, at::Tensor&}]’:
/usr/include/c++/6/tuple:686:422: required by substitution of ‘template<class ... _UElements, class _Dummy, typename std::enable_if<((std::_TC<(1ul == sizeof... (_UElements)), at::Tensor&, at::Tensor&, at::Tensor&>::_MoveConstructibleTuple<_UElements ...>() && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor&, at::Tensor&, at::Tensor&>::_ImplicitlyMoveConvertibleTuple<_UElements ...>()) && std::_TC<(std::is_same<_Dummy, void>::value && (1ul == 1)), at::Tensor&, at::Tensor&, at::Tensor&>::_NonNestedTuple<tuple<_Elements ...>&&>()), bool>::type > constexpr std::tuple< >::tuple(std::tuple<_Args1 ...>&&) [with _UElements = {at::Tensor&, at::Tensor&, at::Tensor&}; _Dummy = void; typename std::enable_if<((std::_TC<(1ul == sizeof... (_UElements)), at::Tensor&, at::Tensor&, at::Tensor&>::_MoveConstructibleTuple<_UElements ...>() && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor&, at::Tensor&, at::Tensor&>::_ImplicitlyMoveConvertibleTuple<_UElements ...>()) && std::_TC<(std::is_same<_Dummy, void>::value && (1ul == 1)), at::Tensor&, at::Tensor&, at::Tensor&>::_NonNestedTuple<tuple<_Elements ...>&&>()), bool>::type = ]’
/home/shiz31/anaconda3/lib/python3.7/site-packages/torch/include/ATen/Functions.h:2426:85: required from here
/usr/include/c++/6/tuple:495:244: error: wrong number of template arguments (4, should be 2)
return _and<_not<is_same<tuple<_Elements...>,
^
/usr/include/c++/6/type_traits:1558:8: note: provided for ‘template<class _From, class _To> struct std::is_convertible’
struct is_convertible
^~~~~~~~~~~~~~
/usr/include/c++/6/tuple:502:1: error: body of constexpr function ‘static constexpr bool std::_TC<, _Elements>::_NonNestedTuple() [with _SrcTuple = std::tuple<at::Tensor&, at::Tensor&, at::Tensor&>&&; bool = true; _Elements = {at::Tensor&, at::Tensor&, at::Tensor&}]’ not a return-statement
}
^
/usr/include/c++/6/tuple: In instantiation of ‘static constexpr bool std::_TC<, _Elements>::_MoveConstructibleTuple() [with _UElements = {std::tuple<at::Tensor, at::Tensor, at::Tensor, at::Tensor, at::Tensor>}; bool = true; _Elements = {at::Tensor, at::Tensor, at::Tensor, at::Tensor, at::Tensor}’:
/usr/include/c++/6/tuple:626:248: required by substitution of ‘template<class ... _UElements, typename std::enable_if<(((std::_TC<(sizeof... (_UElements) == 1), at::Tensor, at::Tensor, at::Tensor, at::Tensor, at::Tensor>::_NotSameTuple<_UElements ...>() && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor, at::Tensor, at::Tensor>::_MoveConstructibleTuple<_UElements ...>()) && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor, at::Tensor, at::Tensor>::_ImplicitlyMoveConvertibleTuple<_UElements ...>()) && (5ul >= 1)), bool>::type > constexpr std::tuple< >::tuple(_UElements&& ...) [with _UElements = {std::tuple<at::Tensor, at::Tensor, at::Tensor, at::Tensor, at::Tensor>}; typename std::enable_if<(((std::_TC<(sizeof... (_UElements) == 1), at::Tensor, at::Tensor, at::Tensor, at::Tensor, at::Tensor>::_NotSameTuple<_UElements ...>() && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor, at::Tensor, at::Tensor>::_MoveConstructibleTuple<_UElements ...>()) && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor, at::Tensor, at::Tensor>::_ImplicitlyMoveConvertibleTuple<_UElements ...>()) && (5ul >= 1)), bool>::type = ]’
/home/shiz31/anaconda3/lib/python3.7/site-packages/torch/include/ATen/Functions.h:3119:197: required from here
/usr/include/c++/6/tuple:483:67: error: mismatched argument pack lengths while expanding ‘std::is_constructible<_Elements, _UElements&&>’
return _and<is_constructible<_Elements, _UElements&&>...>::value;
^~~~~
/usr/include/c++/6/tuple:484:1: error: body of constexpr function ‘static constexpr bool std::_TC<, _Elements>::_MoveConstructibleTuple() [with _UElements = {std::tuple<at::Tensor, at::Tensor, at::Tensor, at::Tensor, at::Tensor>}; bool = true; _Elements = {at::Tensor, at::Tensor, at::Tensor, at::Tensor, at::Tensor}]’ not a return-statement
}
^
/usr/include/c++/6/tuple: In instantiation of ‘static constexpr bool std::_TC<, _Elements>::_ImplicitlyMoveConvertibleTuple() [with _UElements = {std::tuple<at::Tensor, at::Tensor, at::Tensor, at::Tensor, at::Tensor>}; bool = true; _Elements = {at::Tensor, at::Tensor, at::Tensor, at::Tensor, at::Tensor}]’:
/usr/include/c++/6/tuple:626:362: required by substitution of ‘template<class ... _UElements, typename std::enable_if<(((std::_TC<(sizeof... (_UElements) == 1), at::Tensor, at::Tensor, at::Tensor, at::Tensor, at::Tensor>::_NotSameTuple<_UElements ...>() && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor, at::Tensor, at::Tensor>::_MoveConstructibleTuple<_UElements ...>()) && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor, at::Tensor, at::Tensor>::_ImplicitlyMoveConvertibleTuple<_UElements ...>()) && (5ul >= 1)), bool>::type > constexpr std::tuple< >::tuple(_UElements&& ...) [with _UElements = {std::tuple<at::Tensor, at::Tensor, at::Tensor, at::Tensor, at::Tensor>}; typename std::enable_if<(((std::_TC<(sizeof... (_UElements) == 1), at::Tensor, at::Tensor, at::Tensor, at::Tensor, at::Tensor>::_NotSameTuple<_UElements ...>() && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor, at::Tensor, at::Tensor>::_MoveConstructibleTuple<_UElements ...>()) && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor, at::Tensor, at::Tensor>::_ImplicitlyMoveConvertibleTuple<_UElements ...>()) && (5ul >= 1)), bool>::type = ]’
/home/shiz31/anaconda3/lib/python3.7/site-packages/torch/include/ATen/Functions.h:3119:197: required from here
/usr/include/c++/6/tuple:489:65: error: mismatched argument pack lengths while expanding ‘std::is_convertible<_UElements&&, _Elements>’
return _and<is_convertible<_UElements&&, _Elements>...>::value;
^~~~~
/usr/include/c++/6/tuple:490:1: error: body of constexpr function ‘static constexpr bool std::_TC<, _Elements>::_ImplicitlyMoveConvertibleTuple() [with _UElements = {std::tuple<at::Tensor, at::Tensor, at::Tensor, at::Tensor, at::Tensor>}; bool = true; _Elements = {at::Tensor, at::Tensor, at::Tensor, at::Tensor, at::Tensor}]’ not a return-statement
}
^
/usr/include/c++/6/tuple: In instantiation of ‘static constexpr bool std::_TC<, _Elements>::_NonNestedTuple() [with _SrcTuple = const std::tuple<at::Tensor, at::Tensor, at::Tensor, at::Tensor, at::Tensor>&; bool = true; _Elements = {at::Tensor, at::Tensor, at::Tensor, at::Tensor, at::Tensor}]’:
/usr/include/c++/6/tuple:662:419: required by substitution of ‘template<class ... _UElements, class _Dummy, typename std::enable_if<((std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor, at::Tensor, at::Tensor>::_ConstructibleTuple<_UElements ...>() && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor, at::Tensor, at::Tensor>::_ImplicitlyConvertibleTuple<_UElements ...>()) && std::_TC<(std::is_same<_Dummy, void>::value && (1ul == 1)), at::Tensor, at::Tensor, at::Tensor, at::Tensor, at::Tensor>::_NonNestedTuple<const tuple<_Elements ...>&>()), bool>::type > constexpr std::tuple< >::tuple(const std::tuple<_Args1 ...>&) [with _UElements = {at::Tensor, at::Tensor, at::Tensor, at::Tensor, at::Tensor}; _Dummy = void; typename std::enable_if<((std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor, at::Tensor, at::Tensor>::_ConstructibleTuple<_UElements ...>() && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor, at::Tensor, at::Tensor>::_ImplicitlyConvertibleTuple<_UElements ...>()) && std::_TC<(std::is_same<_Dummy, void>::value && (1ul == 1)), at::Tensor, at::Tensor, at::Tensor, at::Tensor, at::Tensor>::_NonNestedTuple<const tuple<_Elements ...>&>()), bool>::type = ]’
/home/shiz31/anaconda3/lib/python3.7/site-packages/torch/include/ATen/Functions.h:3119:197: required from here
/usr/include/c++/6/tuple:495:244: error: wrong number of template arguments (6, should be 2)
return _and<_not<is_same<tuple<_Elements...>,
^
/usr/include/c++/6/type_traits:1558:8: note: provided for ‘template<class _From, class _To> struct std::is_convertible’
struct is_convertible
^~~~~~~~~~~~~~
/usr/include/c++/6/tuple:502:1: error: body of constexpr function ‘static constexpr bool std::_TC<, _Elements>::_NonNestedTuple() [with _SrcTuple = const std::tuple<at::Tensor, at::Tensor, at::Tensor, at::Tensor, at::Tensor>&; bool = true; _Elements = {at::Tensor, at::Tensor, at::Tensor, at::Tensor, at::Tensor}]’ not a return-statement
}
^
/usr/include/c++/6/tuple: In instantiation of ‘static constexpr bool std::_TC<, _Elements>::_NonNestedTuple() [with _SrcTuple = std::tuple<at::Tensor, at::Tensor, at::Tensor, at::Tensor, at::Tensor>&&; bool = true; _Elements = {at::Tensor, at::Tensor, at::Tensor, at::Tensor, at::Tensor}]’:
/usr/include/c++/6/tuple:686:422: required by substitution of ‘template<class ... _UElements, class _Dummy, typename std::enable_if<((std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor, at::Tensor, at::Tensor>::_MoveConstructibleTuple<_UElements ...>() && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor, at::Tensor, at::Tensor>::_ImplicitlyMoveConvertibleTuple<_UElements ...>()) && std::_TC<(std::is_same<_Dummy, void>::value && (1ul == 1)), at::Tensor, at::Tensor, at::Tensor, at::Tensor, at::Tensor>::_NonNestedTuple<tuple<_Elements ...>&&>()), bool>::type > constexpr std::tuple< >::tuple(std::tuple<_Args1 ...>&&) [with _UElements = {at::Tensor, at::Tensor, at::Tensor, at::Tensor, at::Tensor}; _Dummy = void; typename std::enable_if<((std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor, at::Tensor, at::Tensor>::_MoveConstructibleTuple<_UElements ...>() && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor, at::Tensor, at::Tensor>::_ImplicitlyMoveConvertibleTuple<_UElements ...>()) && std::_TC<(std::is_same<_Dummy, void>::value && (1ul == 1)), at::Tensor, at::Tensor, at::Tensor, at::Tensor, at::Tensor>::_NonNestedTuple<tuple<_Elements ...>&&>()), bool>::type = ]’
/home/shiz31/anaconda3/lib/python3.7/site-packages/torch/include/ATen/Functions.h:3119:197: required from here
/usr/include/c++/6/tuple:495:244: error: wrong number of template arguments (6, should be 2)
return _and<_not<is_same<tuple<_Elements...>,
^
/usr/include/c++/6/type_traits:1558:8: note: provided for ‘template<class _From, class _To> struct std::is_convertible’
struct is_convertible
^~~~~~~~~~~~~~
/usr/include/c++/6/tuple:502:1: error: body of constexpr function ‘static constexpr bool std::_TC<, _Elements>::_NonNestedTuple() [with _SrcTuple = std::tuple<at::Tensor, at::Tensor, at::Tensor, at::Tensor, at::Tensor>&&; bool = true; _Elements = {at::Tensor, at::Tensor, at::Tensor, at::Tensor, at::Tensor}]’ not a return-statement
}
^
/usr/include/c++/6/tuple: In instantiation of ‘static constexpr bool std::_TC<, _Elements>::_MoveConstructibleTuple() [with _UElements = {std::tuple<at::Tensor, at::Tensor, at::Tensor, std::vector<at::Tensor, std::allocatorat::Tensor > >}; bool = true; _Elements = {at::Tensor, at::Tensor, at::Tensor, std::vector<at::Tensor, std::allocatorat::Tensor >}]’:
/usr/include/c++/6/tuple:626:248: required by substitution of ‘template<class ... _UElements, typename std::enable_if<(((std::_TC<(sizeof... (_UElements) == 1), at::Tensor, at::Tensor, at::Tensor, std::vector<at::Tensor, std::allocatorat::Tensor > >::_NotSameTuple<_UElements ...>() && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor, std::vector<at::Tensor, std::allocatorat::Tensor > >::_MoveConstructibleTuple<_UElements ...>()) && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor, std::vector<at::Tensor, std::allocatorat::Tensor > >::_ImplicitlyMoveConvertibleTuple<_UElements ...>()) && (4ul >= 1)), bool>::type > constexpr std::tuple< >::tuple(_UElements&& ...) [with _UElements = {std::tuple<at::Tensor, at::Tensor, at::Tensor, std::vector<at::Tensor, std::allocatorat::Tensor > >}; typename std::enable_if<(((std::_TC<(sizeof... (_UElements) == 1), at::Tensor, at::Tensor, at::Tensor, std::vector<at::Tensor, std::allocatorat::Tensor > >::_NotSameTuple<_UElements ...>() && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor, std::vector<at::Tensor, std::allocatorat::Tensor > >::_MoveConstructibleTuple<_UElements ...>()) && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor, std::vector<at::Tensor, std::allocatorat::Tensor > >::_ImplicitlyMoveConvertibleTuple<_UElements ...>()) && (4ul >= 1)), bool>::type = ]’
/home/shiz31/anaconda3/lib/python3.7/site-packages/torch/include/ATen/Functions.h:3122:267: required from here
/usr/include/c++/6/tuple:483:67: error: mismatched argument pack lengths while expanding ‘std::is_constructible<_Elements, _UElements&&>’
return _and<is_constructible<_Elements, _UElements&&>...>::value;
^~~~~
/usr/include/c++/6/tuple:484:1: error: body of constexpr function ‘static constexpr bool std::_TC<, _Elements>::_MoveConstructibleTuple() [with _UElements = {std::tuple<at::Tensor, at::Tensor, at::Tensor, std::vector<at::Tensor, std::allocatorat::Tensor > >}; bool = true; _Elements = {at::Tensor, at::Tensor, at::Tensor, std::vector<at::Tensor, std::allocatorat::Tensor >}]’ not a return-statement
}
^
/usr/include/c++/6/tuple: In instantiation of ‘static constexpr bool std::_TC<, _Elements>::_ImplicitlyMoveConvertibleTuple() [with _UElements = {std::tuple<at::Tensor, at::Tensor, at::Tensor, std::vector<at::Tensor, std::allocatorat::Tensor > >}; bool = true; _Elements = {at::Tensor, at::Tensor, at::Tensor, std::vector<at::Tensor, std::allocatorat::Tensor >}]’:
/usr/include/c++/6/tuple:626:362: required by substitution of ‘template<class ... _UElements, typename std::enable_if<(((std::_TC<(sizeof... (_UElements) == 1), at::Tensor, at::Tensor, at::Tensor, std::vector<at::Tensor, std::allocatorat::Tensor > >::_NotSameTuple<_UElements ...>() && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor, std::vector<at::Tensor, std::allocatorat::Tensor > >::_MoveConstructibleTuple<_UElements ...>()) && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor, std::vector<at::Tensor, std::allocatorat::Tensor > >::_ImplicitlyMoveConvertibleTuple<_UElements ...>()) && (4ul >= 1)), bool>::type > constexpr std::tuple< >::tuple(_UElements&& ...) [with _UElements = {std::tuple<at::Tensor, at::Tensor, at::Tensor, std::vector<at::Tensor, std::allocatorat::Tensor > >}; typename std::enable_if<(((std::_TC<(sizeof... (_UElements) == 1), at::Tensor, at::Tensor, at::Tensor, std::vector<at::Tensor, std::allocatorat::Tensor > >::_NotSameTuple<_UElements ...>() && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor, std::vector<at::Tensor, std::allocatorat::Tensor > >::_MoveConstructibleTuple<_UElements ...>()) && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor, std::vector<at::Tensor, std::allocatorat::Tensor > >::_ImplicitlyMoveConvertibleTuple<_UElements ...>()) && (4ul >= 1)), bool>::type = ]’
/home/shiz31/anaconda3/lib/python3.7/site-packages/torch/include/ATen/Functions.h:3122:267: required from here
/usr/include/c++/6/tuple:489:65: error: mismatched argument pack lengths while expanding ‘std::is_convertible<_UElements&&, _Elements>’
return _and<is_convertible<_UElements&&, _Elements>...>::value;
^~~~~
/usr/include/c++/6/tuple:490:1: error: body of constexpr function ‘static constexpr bool std::_TC<, _Elements>::_ImplicitlyMoveConvertibleTuple() [with _UElements = {std::tuple<at::Tensor, at::Tensor, at::Tensor, std::vector<at::Tensor, std::allocatorat::Tensor > >}; bool = true; _Elements = {at::Tensor, at::Tensor, at::Tensor, std::vector<at::Tensor, std::allocatorat::Tensor >}]’ not a return-statement
}
^
/usr/include/c++/6/tuple: In instantiation of ‘static constexpr bool std::_TC<, _Elements>::_NonNestedTuple() [with _SrcTuple = const std::tuple<at::Tensor, at::Tensor, at::Tensor, std::vector<at::Tensor, std::allocatorat::Tensor > >&; bool = true; _Elements = {at::Tensor, at::Tensor, at::Tensor, std::vector<at::Tensor, std::allocatorat::Tensor >}]’:
/usr/include/c++/6/tuple:662:419: required by substitution of ‘template<class ... _UElements, class _Dummy, typename std::enable_if<((std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor, std::vector<at::Tensor, std::allocatorat::Tensor > >::_ConstructibleTuple<_UElements ...>() && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor, std::vector<at::Tensor, std::allocatorat::Tensor > >::_ImplicitlyConvertibleTuple<_UElements ...>()) && std::_TC<(std::is_same<_Dummy, void>::value && (1ul == 1)), at::Tensor, at::Tensor, at::Tensor, std::vector<at::Tensor, std::allocatorat::Tensor > >::_NonNestedTuple<const tuple<_Elements ...>&>()), bool>::type > constexpr std::tuple< >::tuple(const std::tuple<_Args1 ...>&) [with _UElements = {at::Tensor, at::Tensor, at::Tensor, std::vector<at::Tensor, std::allocatorat::Tensor >}; _Dummy = void; typename std::enable_if<((std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor, std::vector<at::Tensor, std::allocatorat::Tensor > >::_ConstructibleTuple<_UElements ...>() && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor, std::vector<at::Tensor, std::allocatorat::Tensor > >::_ImplicitlyConvertibleTuple<_UElements ...>()) && std::_TC<(std::is_same<_Dummy, void>::value && (1ul == 1)), at::Tensor, at::Tensor, at::Tensor, std::vector<at::Tensor, std::allocatorat::Tensor > >::_NonNestedTuple<const tuple<_Elements ...>&>()), bool>::type = ]’
/home/shiz31/anaconda3/lib/python3.7/site-packages/torch/include/ATen/Functions.h:3122:267: required from here
/usr/include/c++/6/tuple:495:244: error: wrong number of template arguments (5, should be 2)
return _and<_not<is_same<tuple<_Elements...>,
^
/usr/include/c++/6/type_traits:1558:8: note: provided for ‘template<class _From, class _To> struct std::is_convertible’
struct is_convertible
^~~~~~~~~~~~~~
/usr/include/c++/6/tuple:502:1: error: body of constexpr function ‘static constexpr bool std::_TC<, _Elements>::_NonNestedTuple() [with _SrcTuple = const std::tuple<at::Tensor, at::Tensor, at::Tensor, std::vector<at::Tensor, std::allocatorat::Tensor > >&; bool = true; _Elements = {at::Tensor, at::Tensor, at::Tensor, std::vector<at::Tensor, std::allocatorat::Tensor >}]’ not a return-statement
}
^
/usr/include/c++/6/tuple: In instantiation of ‘static constexpr bool std::_TC<, _Elements>::_NonNestedTuple() [with _SrcTuple = std::tuple<at::Tensor, at::Tensor, at::Tensor, std::vector<at::Tensor, std::allocatorat::Tensor > >&&; bool = true; _Elements = {at::Tensor, at::Tensor, at::Tensor, std::vector<at::Tensor, std::allocatorat::Tensor >}]’:
/usr/include/c++/6/tuple:686:422: required by substitution of ‘template<class ... _UElements, class _Dummy, typename std::enable_if<((std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor, std::vector<at::Tensor, std::allocatorat::Tensor > >::_MoveConstructibleTuple<_UElements ...>() && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor, std::vector<at::Tensor, std::allocatorat::Tensor > >::_ImplicitlyMoveConvertibleTuple<_UElements ...>()) && std::_TC<(std::is_same<_Dummy, void>::value && (1ul == 1)), at::Tensor, at::Tensor, at::Tensor, std::vector<at::Tensor, std::allocatorat::Tensor > >::_NonNestedTuple<tuple<_Elements ...>&&>()), bool>::type > constexpr std::tuple< >::tuple(std::tuple<_Args1 ...>&&) [with _UElements = {at::Tensor, at::Tensor, at::Tensor, std::vector<at::Tensor, std::allocatorat::Tensor >}; _Dummy = void; typename std::enable_if<((std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor, std::vector<at::Tensor, std::allocatorat::Tensor > >::_MoveConstructibleTuple<_UElements ...>() && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor, std::vector<at::Tensor, std::allocatorat::Tensor > >::_ImplicitlyMoveConvertibleTuple<_UElements ...>()) && std::_TC<(std::is_same<_Dummy, void>::value && (1ul == 1)), at::Tensor, at::Tensor, at::Tensor, std::vector<at::Tensor, std::allocatorat::Tensor > >::_NonNestedTuple<tuple<_Elements ...>&&>()), bool>::type = ]’
/home/shiz31/anaconda3/lib/python3.7/site-packages/torch/include/ATen/Functions.h:3122:267: required from here
/usr/include/c++/6/tuple:495:244: error: wrong number of template arguments (5, should be 2)
return _and<_not<is_same<tuple<_Elements...>,
^
/usr/include/c++/6/type_traits:1558:8: note: provided for ‘template<class _From, class _To> struct std::is_convertible’
struct is_convertible
^~~~~~~~~~~~~~
/usr/include/c++/6/tuple:502:1: error: body of constexpr function ‘static constexpr bool std::_TC<, _Elements>::_NonNestedTuple() [with _SrcTuple = std::tuple<at::Tensor, at::Tensor, at::Tensor, std::vector<at::Tensor, std::allocatorat::Tensor > >&&; bool = true; _Elements = {at::Tensor, at::Tensor, at::Tensor, std::vector<at::Tensor, std::allocatorat::Tensor >}]’ not a return-statement
}
^
/usr/include/c++/6/tuple: In instantiation of ‘static constexpr bool std::_TC<, _Elements>::_MoveConstructibleTuple() [with _UElements = {std::tuple<at::Tensor, at::Tensor, at::Tensor, long int>}; bool = true; _Elements = {at::Tensor, at::Tensor, at::Tensor, long int}]’:
/usr/include/c++/6/tuple:626:248: required by substitution of ‘template<class ... _UElements, typename std::enable_if<(((std::_TC<(sizeof... (_UElements) == 1), at::Tensor, at::Tensor, at::Tensor, long int>::_NotSameTuple<_UElements ...>() && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor, long int>::_MoveConstructibleTuple<_UElements ...>()) && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor, long int>::_ImplicitlyMoveConvertibleTuple<_UElements ...>()) && (4ul >= 1)), bool>::type > constexpr std::tuple< >::tuple(_UElements&& ...) [with _UElements = {std::tuple<at::Tensor, at::Tensor, at::Tensor, long int>}; typename std::enable_if<(((std::_TC<(sizeof... (_UElements) == 1), at::Tensor, at::Tensor, at::Tensor, long int>::_NotSameTuple<_UElements ...>() && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor, long int>::_MoveConstructibleTuple<_UElements ...>()) && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor, long int>::_ImplicitlyMoveConvertibleTuple<_UElements ...>()) && (4ul >= 1)), bool>::type = ]’
/home/shiz31/anaconda3/lib/python3.7/site-packages/torch/include/ATen/Functions.h:3317:143: required from here
/usr/include/c++/6/tuple:483:67: error: mismatched argument pack lengths while expanding ‘std::is_constructible<_Elements, _UElements&&>’
return _and<is_constructible<_Elements, _UElements&&>...>::value;
^~~~~
/usr/include/c++/6/tuple:484:1: error: body of constexpr function ‘static constexpr bool std::_TC<, _Elements>::_MoveConstructibleTuple() [with _UElements = {std::tuple<at::Tensor, at::Tensor, at::Tensor, long int>}; bool = true; _Elements = {at::Tensor, at::Tensor, at::Tensor, long int}]’ not a return-statement
}
^
/usr/include/c++/6/tuple: In instantiation of ‘static constexpr bool std::_TC<, _Elements>::_ImplicitlyMoveConvertibleTuple() [with _UElements = {std::tuple<at::Tensor, at::Tensor, at::Tensor, long int>}; bool = true; _Elements = {at::Tensor, at::Tensor, at::Tensor, long int}]’:
/usr/include/c++/6/tuple:626:362: required by substitution of ‘template<class ... _UElements, typename std::enable_if<(((std::_TC<(sizeof... (_UElements) == 1), at::Tensor, at::Tensor, at::Tensor, long int>::_NotSameTuple<_UElements ...>() && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor, long int>::_MoveConstructibleTuple<_UElements ...>()) && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor, long int>::_ImplicitlyMoveConvertibleTuple<_UElements ...>()) && (4ul >= 1)), bool>::type > constexpr std::tuple< >::tuple(_UElements&& ...) [with _UElements = {std::tuple<at::Tensor, at::Tensor, at::Tensor, long int>}; typename std::enable_if<(((std::_TC<(sizeof... (_UElements) == 1), at::Tensor, at::Tensor, at::Tensor, long int>::_NotSameTuple<_UElements ...>() && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor, long int>::_MoveConstructibleTuple<_UElements ...>()) && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor, long int>::_ImplicitlyMoveConvertibleTuple<_UElements ...>()) && (4ul >= 1)), bool>::type = ]’
/home/shiz31/anaconda3/lib/python3.7/site-packages/torch/include/ATen/Functions.h:3317:143: required from here
/usr/include/c++/6/tuple:489:65: error: mismatched argument pack lengths while expanding ‘std::is_convertible<_UElements&&, _Elements>’
return _and<is_convertible<_UElements&&, _Elements>...>::value;
^~~~~
/usr/include/c++/6/tuple:490:1: error: body of constexpr function ‘static constexpr bool std::_TC<, _Elements>::_ImplicitlyMoveConvertibleTuple() [with _UElements = {std::tuple<at::Tensor, at::Tensor, at::Tensor, long int>}; bool = true; _Elements = {at::Tensor, at::Tensor, at::Tensor, long int}’ not a return-statement
}
^
/usr/include/c++/6/tuple: In instantiation of ‘static constexpr bool std::_TC<, _Elements>::_NonNestedTuple() [with _SrcTuple = const std::tuple<at::Tensor, at::Tensor, at::Tensor, long int>&; bool = true; _Elements = {at::Tensor, at::Tensor, at::Tensor, long int}]’:
/usr/include/c++/6/tuple:662:419: required by substitution of ‘template<class ... _UElements, class _Dummy, typename std::enable_if<((std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor, long int>::_ConstructibleTuple<_UElements ...>() && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor, long int>::_ImplicitlyConvertibleTuple<_UElements ...>()) && std::_TC<(std::is_same<_Dummy, void>::value && (1ul == 1)), at::Tensor, at::Tensor, at::Tensor, long int>::_NonNestedTuple<const tuple<_Elements ...>&>()), bool>::type > constexpr std::tuple< >::tuple(const std::tuple<_Args1 ...>&) [with _UElements = {at::Tensor, at::Tensor, at::Tensor, long int}; _Dummy = void; typename std::enable_if<((std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor, long int>::_ConstructibleTuple<_UElements ...>() && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor, long int>::_ImplicitlyConvertibleTuple<_UElements ...>()) && std::_TC<(std::is_same<_Dummy, void>::value && (1ul == 1)), at::Tensor, at::Tensor, at::Tensor, long int>::_NonNestedTuple<const tuple<_Elements ...>&>()), bool>::type = ]’
/home/shiz31/anaconda3/lib/python3.7/site-packages/torch/include/ATen/Functions.h:3317:143: required from here
/usr/include/c++/6/tuple:495:244: error: wrong number of template arguments (5, should be 2)
return _and<_not<is_same<tuple<_Elements...>,
^
/usr/include/c++/6/type_traits:1558:8: note: provided for ‘template<class _From, class _To> struct std::is_convertible’
struct is_convertible
^~~~~~~~~~~~~~
/usr/include/c++/6/tuple:502:1: error: body of constexpr function ‘static constexpr bool std::_TC<, _Elements>::_NonNestedTuple() [with _SrcTuple = const std::tuple<at::Tensor, at::Tensor, at::Tensor, long int>&; bool = true; _Elements = {at::Tensor, at::Tensor, at::Tensor, long int}]’ not a return-statement
}
^
/usr/include/c++/6/tuple: In instantiation of ‘static constexpr bool std::_TC<, _Elements>::_NonNestedTuple() [with _SrcTuple = std::tuple<at::Tensor, at::Tensor, at::Tensor, long int>&&; bool = true; _Elements = {at::Tensor, at::Tensor, at::Tensor, long int}]’:
/usr/include/c++/6/tuple:686:422: required by substitution of ‘template<class ... _UElements, class _Dummy, typename std::enable_if<((std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor, long int>::_MoveConstructibleTuple<_UElements ...>() && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor, long int>::_ImplicitlyMoveConvertibleTuple<_UElements ...>()) && std::_TC<(std::is_same<_Dummy, void>::value && (1ul == 1)), at::Tensor, at::Tensor, at::Tensor, long int>::_NonNestedTuple<tuple<_Elements ...>&&>()), bool>::type > constexpr std::tuple< >::tuple(std::tuple<_Args1 ...>&&) [with _UElements = {at::Tensor, at::Tensor, at::Tensor, long int}; _Dummy = void; typename std::enable_if<((std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor, long int>::_MoveConstructibleTuple<_UElements ...>() && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor, long int>::_ImplicitlyMoveConvertibleTuple<_UElements ...>()) && std::_TC<(std::is_same<_Dummy, void>::value && (1ul == 1)), at::Tensor, at::Tensor, at::Tensor, long int>::_NonNestedTuple<tuple<_Elements ...>&&>()), bool>::type = ]’
/home/shiz31/anaconda3/lib/python3.7/site-packages/torch/include/ATen/Functions.h:3317:143: required from here
/usr/include/c++/6/tuple:495:244: error: wrong number of template arguments (5, should be 2)
return _and<_not<is_same<tuple<_Elements...>,
^
/usr/include/c++/6/type_traits:1558:8: note: provided for ‘template<class _From, class _To> struct std::is_convertible’
struct is_convertible
^~~~~~~~~~~~~~
/usr/include/c++/6/tuple:502:1: error: body of constexpr function ‘static constexpr bool std::_TC<, _Elements>::_NonNestedTuple() [with _SrcTuple = std::tuple<at::Tensor, at::Tensor, at::Tensor, long int>&&; bool = true; _Elements = {at::Tensor, at::Tensor, at::Tensor, long int}]’ not a return-statement
}
^
/usr/include/c++/6/tuple: In instantiation of ‘static constexpr bool std::_TC<, _Elements>::_MoveConstructibleTuple() [with _UElements = {std::tuple<at::Tensor, at::Tensor, at::Tensor, at::Tensor>}; bool = true; _Elements = {at::Tensor, at::Tensor, at::Tensor, at::Tensor}]’:
/usr/include/c++/6/tuple:626:248: required by substitution of ‘template<class ... _UElements, typename std::enable_if<(((std::_TC<(sizeof... (_UElements) == 1), at::Tensor, at::Tensor, at::Tensor, at::Tensor>::_NotSameTuple<_UElements ...>() && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor, at::Tensor>::_MoveConstructibleTuple<_UElements ...>()) && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor, at::Tensor>::_ImplicitlyMoveConvertibleTuple<_UElements ...>()) && (4ul >= 1)), bool>::type > constexpr std::tuple< >::tuple(_UElements&& ...) [with _UElements = {std::tuple<at::Tensor, at::Tensor, at::Tensor, at::Tensor>}; typename std::enable_if<(((std::_TC<(sizeof... (_UElements) == 1), at::Tensor, at::Tensor, at::Tensor, at::Tensor>::_NotSameTuple<_UElements ...>() && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor, at::Tensor>::_MoveConstructibleTuple<_UElements ...>()) && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor, at::Tensor>::_ImplicitlyMoveConvertibleTuple<_UElements ...>()) && (4ul >= 1)), bool>::type = ]’
/home/shiz31/anaconda3/lib/python3.7/site-packages/torch/include/ATen/Functions.h:3608:127: required from here
/usr/include/c++/6/tuple:483:67: error: mismatched argument pack lengths while expanding ‘std::is_constructible<_Elements, _UElements&&>’
return _and<is_constructible<_Elements, _UElements&&>...>::value;
^~~~~
/usr/include/c++/6/tuple:484:1: error: body of constexpr function ‘static constexpr bool std::_TC<, _Elements>::_MoveConstructibleTuple() [with _UElements = {std::tuple<at::Tensor, at::Tensor, at::Tensor, at::Tensor>}; bool = true; _Elements = {at::Tensor, at::Tensor, at::Tensor, at::Tensor}]’ not a return-statement
}
^
/usr/include/c++/6/tuple: In instantiation of ‘static constexpr bool std::_TC<, _Elements>::_ImplicitlyMoveConvertibleTuple() [with _UElements = {std::tuple<at::Tensor, at::Tensor, at::Tensor, at::Tensor>}; bool = true; _Elements = {at::Tensor, at::Tensor, at::Tensor, at::Tensor}]’:
/usr/include/c++/6/tuple:626:362: required by substitution of ‘template<class ... _UElements, typename std::enable_if<(((std::_TC<(sizeof... (_UElements) == 1), at::Tensor, at::Tensor, at::Tensor, at::Tensor>::_NotSameTuple<_UElements ...>() && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor, at::Tensor>::_MoveConstructibleTuple<_UElements ...>()) && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor, at::Tensor>::_ImplicitlyMoveConvertibleTuple<_UElements ...>()) && (4ul >= 1)), bool>::type > constexpr std::tuple< >::tuple(_UElements&& ...) [with _UElements = {std::tuple<at::Tensor, at::Tensor, at::Tensor, at::Tensor>}; typename std::enable_if<(((std::_TC<(sizeof... (_UElements) == 1), at::Tensor, at::Tensor, at::Tensor, at::Tensor>::_NotSameTuple<_UElements ...>() && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor, at::Tensor>::_MoveConstructibleTuple<_UElements ...>()) && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor, at::Tensor>::_ImplicitlyMoveConvertibleTuple<_UElements ...>()) && (4ul >= 1)), bool>::type = ]’
/home/shiz31/anaconda3/lib/python3.7/site-packages/torch/include/ATen/Functions.h:3608:127: required from here
/usr/include/c++/6/tuple:489:65: error: mismatched argument pack lengths while expanding ‘std::is_convertible<_UElements&&, _Elements>’
return _and<is_convertible<_UElements&&, _Elements>...>::value;
^~~~~
/usr/include/c++/6/tuple:490:1: error: body of constexpr function ‘static constexpr bool std::_TC<, _Elements>::_ImplicitlyMoveConvertibleTuple() [with _UElements = {std::tuple<at::Tensor, at::Tensor, at::Tensor, at::Tensor>}; bool = true; _Elements = {at::Tensor, at::Tensor, at::Tensor, at::Tensor}]’ not a return-statement
}
^
/usr/include/c++/6/tuple: In instantiation of ‘static constexpr bool std::_TC<, _Elements>::_NonNestedTuple() [with _SrcTuple = const std::tuple<at::Tensor, at::Tensor, at::Tensor, at::Tensor>&; bool = true; _Elements = {at::Tensor, at::Tensor, at::Tensor, at::Tensor}]’:
/usr/include/c++/6/tuple:662:419: required by substitution of ‘template<class ... _UElements, class _Dummy, typename std::enable_if<((std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor, at::Tensor>::_ConstructibleTuple<_UElements ...>() && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor, at::Tensor>::_ImplicitlyConvertibleTuple<_UElements ...>()) && std::_TC<(std::is_same<_Dummy, void>::value && (1ul == 1)), at::Tensor, at::Tensor, at::Tensor, at::Tensor>::_NonNestedTuple<const tuple<_Elements ...>&>()), bool>::type > constexpr std::tuple< >::tuple(const std::tuple<_Args1 ...>&) [with _UElements = {at::Tensor, at::Tensor, at::Tensor, at::Tensor}; _Dummy = void; typename std::enable_if<((std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor, at::Tensor>::_ConstructibleTuple<_UElements ...>() && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor, at::Tensor>::_ImplicitlyConvertibleTuple<_UElements ...>()) && std::_TC<(std::is_same<_Dummy, void>::value && (1ul == 1)), at::Tensor, at::Tensor, at::Tensor, at::Tensor>::_NonNestedTuple<const tuple<_Elements ...>&>()), bool>::type = ]’
/home/shiz31/anaconda3/lib/python3.7/site-packages/torch/include/ATen/Functions.h:3608:127: required from here
/usr/include/c++/6/tuple:495:244: error: wrong number of template arguments (5, should be 2)
return _and<_not<is_same<tuple<_Elements...>,
^
/usr/include/c++/6/type_traits:1558:8: note: provided for ‘template<class _From, class _To> struct std::is_convertible’
struct is_convertible
^~~~~~~~~~~~~~
/usr/include/c++/6/tuple:502:1: error: body of constexpr function ‘static constexpr bool std::_TC<, _Elements>::_NonNestedTuple() [with _SrcTuple = const std::tuple<at::Tensor, at::Tensor, at::Tensor, at::Tensor>&; bool = true; _Elements = {at::Tensor, at::Tensor, at::Tensor, at::Tensor}]’ not a return-statement
}
^
/usr/include/c++/6/tuple: In instantiation of ‘static constexpr bool std::_TC<, _Elements>::_NonNestedTuple() [with _SrcTuple = std::tuple<at::Tensor, at::Tensor, at::Tensor, at::Tensor>&&; bool = true; _Elements = {at::Tensor, at::Tensor, at::Tensor, at::Tensor}]’:
/usr/include/c++/6/tuple:686:422: required by substitution of ‘template<class ... _UElements, class _Dummy, typename std::enable_if<((std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor, at::Tensor>::_MoveConstructibleTuple<_UElements ...>() && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor, at::Tensor>::_ImplicitlyMoveConvertibleTuple<_UElements ...>()) && std::_TC<(std::is_same<_Dummy, void>::value && (1ul == 1)), at::Tensor, at::Tensor, at::Tensor, at::Tensor>::_NonNestedTuple<tuple<_Elements ...>&&>()), bool>::type > constexpr std::tuple< >::tuple(std::tuple<_Args1 ...>&&) [with _UElements = {at::Tensor, at::Tensor, at::Tensor, at::Tensor}; _Dummy = void; typename std::enable_if<((std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor, at::Tensor>::_MoveConstructibleTuple<_UElements ...>() && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor, at::Tensor>::_ImplicitlyMoveConvertibleTuple<_UElements ...>()) && std::_TC<(std::is_same<_Dummy, void>::value && (1ul == 1)), at::Tensor, at::Tensor, at::Tensor, at::Tensor>::_NonNestedTuple<tuple<_Elements ...>&&>()), bool>::type = ]’
/home/shiz31/anaconda3/lib/python3.7/site-packages/torch/include/ATen/Functions.h:3608:127: required from here
/usr/include/c++/6/tuple:495:244: error: wrong number of template arguments (5, should be 2)
return _and<_not<is_same<tuple<_Elements...>,
^
/usr/include/c++/6/type_traits:1558:8: note: provided for ‘template<class _From, class _To> struct std::is_convertible’
struct is_convertible
^~~~~~~~~~~~~~
/usr/include/c++/6/tuple:502:1: error: body of constexpr function ‘static constexpr bool std::_TC<, _Elements>::_NonNestedTuple() [with _SrcTuple = std::tuple<at::Tensor, at::Tensor, at::Tensor, at::Tensor>&&; bool = true; _Elements = {at::Tensor, at::Tensor, at::Tensor, at::Tensor}]’ not a return-statement
}
^
/usr/include/c++/6/tuple: In instantiation of ‘static constexpr bool std::_TC<, _Elements>::_MoveConstructibleTuple() [with _UElements = {std::tuple<at::Tensor, at::Tensor, double, long int>}; bool = true; _Elements = {at::Tensor, at::Tensor, double, long int}]’:
/usr/include/c++/6/tuple:626:248: required by substitution of ‘template<class ... _UElements, typename std::enable_if<(((std::_TC<(sizeof... (_UElements) == 1), at::Tensor, at::Tensor, double, long int>::_NotSameTuple<_UElements ...>() && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, double, long int>::_MoveConstructibleTuple<_UElements ...>()) && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, double, long int>::_ImplicitlyMoveConvertibleTuple<_UElements ...>()) && (4ul >= 1)), bool>::type > constexpr std::tuple< >::tuple(_UElements&& ...) [with _UElements = {std::tuple<at::Tensor, at::Tensor, double, long int>}; typename std::enable_if<(((std::_TC<(sizeof... (_UElements) == 1), at::Tensor, at::Tensor, double, long int>::_NotSameTuple<_UElements ...>() && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, double, long int>::_MoveConstructibleTuple<_UElements ...>()) && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, double, long int>::_ImplicitlyMoveConvertibleTuple<_UElements ...>()) && (4ul >= 1)), bool>::type = ]’
/home/shiz31/anaconda3/lib/python3.7/site-packages/torch/include/ATen/Functions.h:3878:69: required from here
/usr/include/c++/6/tuple:483:67: error: mismatched argument pack lengths while expanding ‘std::is_constructible<_Elements, _UElements&&>’
return _and<is_constructible<_Elements, _UElements&&>...>::value;
^~~~~
/usr/include/c++/6/tuple:484:1: error: body of constexpr function ‘static constexpr bool std::_TC<, _Elements>::_MoveConstructibleTuple() [with _UElements = {std::tuple<at::Tensor, at::Tensor, double, long int>}; bool = true; _Elements = {at::Tensor, at::Tensor, double, long int}]’ not a return-statement
}
^
/usr/include/c++/6/tuple: In instantiation of ‘static constexpr bool std::_TC<, _Elements>::_ImplicitlyMoveConvertibleTuple() [with _UElements = {std::tuple<at::Tensor, at::Tensor, double, long int>}; bool = true; _Elements = {at::Tensor, at::Tensor, double, long int}]’:
/usr/include/c++/6/tuple:626:362: required by substitution of ‘template<class ... _UElements, typename std::enable_if<(((std::_TC<(sizeof... (_UElements) == 1), at::Tensor, at::Tensor, double, long int>::_NotSameTuple<_UElements ...>() && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, double, long int>::_MoveConstructibleTuple<_UElements ...>()) && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, double, long int>::_ImplicitlyMoveConvertibleTuple<_UElements ...>()) && (4ul >= 1)), bool>::type > constexpr std::tuple< >::tuple(_UElements&& ...) [with _UElements = {std::tuple<at::Tensor, at::Tensor, double, long int>}; typename std::enable_if<(((std::_TC<(sizeof... (_UElements) == 1), at::Tensor, at::Tensor, double, long int>::_NotSameTuple<_UElements ...>() && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, double, long int>::_MoveConstructibleTuple<_UElements ...>()) && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, double, long int>::_ImplicitlyMoveConvertibleTuple<_UElements ...>()) && (4ul >= 1)), bool>::type = ]’
/home/shiz31/anaconda3/lib/python3.7/site-packages/torch/include/ATen/Functions.h:3878:69: required from here
/usr/include/c++/6/tuple:489:65: error: mismatched argument pack lengths while expanding ‘std::is_convertible<_UElements&&, _Elements>’
return _and<is_convertible<_UElements&&, _Elements>...>::value;
^~~~~
/usr/include/c++/6/tuple:490:1: error: body of constexpr function ‘static constexpr bool std::_TC<, _Elements>::_ImplicitlyMoveConvertibleTuple() [with _UElements = {std::tuple<at::Tensor, at::Tensor, double, long int>}; bool = true; _Elements = {at::Tensor, at::Tensor, double, long int}]’ not a return-statement
}
^
/usr/include/c++/6/tuple: In instantiation of ‘static constexpr bool std::_TC<, _Elements>::_NonNestedTuple() [with _SrcTuple = const std::tuple<at::Tensor, at::Tensor, double, long int>&; bool = true; _Elements = {at::Tensor, at::Tensor, double, long int}]’:
/usr/include/c++/6/tuple:662:419: required by substitution of ‘template<class ... _UElements, class _Dummy, typename std::enable_if<((std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, double, long int>::_ConstructibleTuple<_UElements ...>() && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, double, long int>::_ImplicitlyConvertibleTuple<_UElements ...>()) && std::_TC<(std::is_same<_Dummy, void>::value && (1ul == 1)), at::Tensor, at::Tensor, double, long int>::_NonNestedTuple<const tuple<_Elements ...>&>()), bool>::type > constexpr std::tuple< >::tuple(const std::tuple<_Args1 ...>&) [with _UElements = {at::Tensor, at::Tensor, double, long int}; _Dummy = void; typename std::enable_if<((std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, double, long int>::_ConstructibleTuple<_UElements ...>() && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, double, long int>::_ImplicitlyConvertibleTuple<_UElements ...>()) && std::_TC<(std::is_same<_Dummy, void>::value && (1ul == 1)), at::Tensor, at::Tensor, double, long int>::_NonNestedTuple<const tuple<_Elements ...>&>()), bool>::type = ]’
/home/shiz31/anaconda3/lib/python3.7/site-packages/torch/include/ATen/Functions.h:3878:69: required from here
/usr/include/c++/6/tuple:495:244: error: wrong number of template arguments (5, should be 2)
return _and<_not<is_same<tuple<_Elements...>,
^
/usr/include/c++/6/type_traits:1558:8: note: provided for ‘template<class _From, class _To> struct std::is_convertible’
struct is_convertible
^~~~~~~~~~~~~~
/usr/include/c++/6/tuple:502:1: error: body of constexpr function ‘static constexpr bool std::_TC<, _Elements>::_NonNestedTuple() [with _SrcTuple = const std::tuple<at::Tensor, at::Tensor, double, long int>&; bool = true; _Elements = {at::Tensor, at::Tensor, double, long int}]’ not a return-statement
}
^
/usr/include/c++/6/tuple: In instantiation of ‘static constexpr bool std::_TC<, _Elements>::_NonNestedTuple() [with _SrcTuple = std::tuple<at::Tensor, at::Tensor, double, long int>&&; bool = true; _Elements = {at::Tensor, at::Tensor, double, long int}]’:
/usr/include/c++/6/tuple:686:422: required by substitution of ‘template<class ... _UElements, class _Dummy, typename std::enable_if<((std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, double, long int>::_MoveConstructibleTuple<_UElements ...>() && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, double, long int>::_ImplicitlyMoveConvertibleTuple<_UElements ...>()) && std::_TC<(std::is_same<_Dummy, void>::value && (1ul == 1)), at::Tensor, at::Tensor, double, long int>::_NonNestedTuple<tuple<_Elements ...>&&>()), bool>::type > constexpr std::tuple< >::tuple(std::tuple<_Args1 ...>&&) [with _UElements = {at::Tensor, at::Tensor, double, long int}; _Dummy = void; typename std::enable_if<((std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, double, long int>::_MoveConstructibleTuple<_UElements ...>() && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, double, long int>::_ImplicitlyMoveConvertibleTuple<_UElements ...>()) && std::_TC<(std::is_same<_Dummy, void>::value && (1ul == 1)), at::Tensor, at::Tensor, double, long int>::_NonNestedTuple<tuple<_Elements ...>&&>()), bool>::type = ]’
/home/shiz31/anaconda3/lib/python3.7/site-packages/torch/include/ATen/Functions.h:3878:69: required from here
/usr/include/c++/6/tuple:495:244: error: wrong number of template arguments (5, should be 2)
return _and<_not<is_same<tuple<_Elements...>,
^
/usr/include/c++/6/type_traits:1558:8: note: provided for ‘template<class _From, class _To> struct std::is_convertible’
struct is_convertible
^~~~~~~~~~~~~~
/usr/include/c++/6/tuple:502:1: error: body of constexpr function ‘static constexpr bool std::_TC<, _Elements>::_NonNestedTuple() [with _SrcTuple = std::tuple<at::Tensor, at::Tensor, double, long int>&&; bool = true; _Elements = {at::Tensor, at::Tensor, double, long int}]’ not a return-statement
}
^
correlation_cuda_kernel.cu: In lambda function:
correlation_cuda_kernel.cu:352:122: warning: ‘c10::ScalarType detail::scalar_type(const at::DeprecatedTypeProperties&)’ is deprecated [-Wdeprecated-declaration]
AT_DISPATCH_FLOATING_TYPES_AND_HALF(input1.type(), "channels_first_fwd_1", ([&] {
^
/home/shiz31/anaconda3/lib/python3.7/site-packages/torch/include/ATen/Dispatch.h:47:1: note: declared here
inline at::ScalarType scalar_type(const at::DeprecatedTypeProperties &t) {
^~~~~~~~~~~
correlation_cuda_kernel.cu: In lambda function:
correlation_cuda_kernel.cu:359:122: warning: ‘c10::ScalarType detail::scalar_type(const at::DeprecatedTypeProperties&)’ is deprecated [-Wdeprecated-declaration]
AT_DISPATCH_FLOATING_TYPES_AND_HALF(input2.type(), "channels_first_fwd_2", ([&] {
^
/home/shiz31/anaconda3/lib/python3.7/site-packages/torch/include/ATen/Dispatch.h:47:1: note: declared here
inline at::ScalarType scalar_type(const at::DeprecatedTypeProperties &t) {
^~~~~~~~~~~
correlation_cuda_kernel.cu: In lambda function:
correlation_cuda_kernel.cu:369:122: warning: ‘c10::ScalarType detail::scalar_type(const at::DeprecatedTypeProperties&)’ is deprecated [-Wdeprecated-declaration]
AT_DISPATCH_FLOATING_TYPES_AND_HALF(input1.type(), "correlation_forward", ([&] {
^
/home/shiz31/anaconda3/lib/python3.7/site-packages/torch/include/ATen/Dispatch.h:47:1: note: declared here
inline at::ScalarType scalar_type(const at::DeprecatedTypeProperties &t) {
^~~~~~~~~~~
correlation_cuda_kernel.cu: In lambda function:
correlation_cuda_kernel.cu:461:122: warning: ‘c10::ScalarType detail::scalar_type(const at::DeprecatedTypeProperties&)’ is deprecated [-Wdeprecated-declaration]
AT_DISPATCH_FLOATING_TYPES_AND_HALF(input1.type(), "lltm_forward_cuda", ([&] {
^
/home/shiz31/anaconda3/lib/python3.7/site-packages/torch/include/ATen/Dispatch.h:47:1: note: declared here
inline at::ScalarType scalar_type(const at::DeprecatedTypeProperties &t) {
^~~~~~~~~~~
correlation_cuda_kernel.cu: In lambda function:
correlation_cuda_kernel.cu:473:122: warning: ‘c10::ScalarType detail::scalar_type(const at::DeprecatedTypeProperties&)’ is deprecated [-Wdeprecated-declaration]
AT_DISPATCH_FLOATING_TYPES_AND_HALF(input2.type(), "lltm_forward_cuda", ([&] {
^
/home/shiz31/anaconda3/lib/python3.7/site-packages/torch/include/ATen/Dispatch.h:47:1: note: declared here
inline at::ScalarType scalar_type(const at::DeprecatedTypeProperties &t) {
^~~~~~~~~~~
correlation_cuda_kernel.cu: In lambda function:
correlation_cuda_kernel.cu:490:122: warning: ‘c10::ScalarType detail::scalar_type(const at::DeprecatedTypeProperties&)’ is deprecated [-Wdeprecated-declaration]
AT_DISPATCH_FLOATING_TYPES_AND_HALF(input2.type(), "lltm_forward_cuda", ([&] {
^
/home/shiz31/anaconda3/lib/python3.7/site-packages/torch/include/ATen/Dispatch.h:47:1: note: declared here
inline at::ScalarType scalar_type(const at::DeprecatedTypeProperties &t) {
^~~~~~~~~~~
correlation_cuda_kernel.cu: In lambda function:
correlation_cuda_kernel.cu:507:124: warning: ‘c10::ScalarType detail::scalar_type(const at::DeprecatedTypeProperties&)’ is deprecated [-Wdeprecated-declaration]
AT_DISPATCH_FLOATING_TYPES_AND_HALF(rInput1.type(), "lltm_forward_cuda", ([&] {
^
/home/shiz31/anaconda3/lib/python3.7/site-packages/torch/include/ATen/Dispatch.h:47:1: note: declared here
inline at::ScalarType scalar_type(const at::DeprecatedTypeProperties &t) {
^~~~~~~~~~~
error: command '/usr/local/cuda/bin/nvcc' failed with exit status 1
Hi,
Why didn't you provide the check points after finetune in things3d_subset?
I think if there is one, it will make the whole training process clearer.
:)
Hi, thanks for your contribution.
Recently, we are trying to train our optical flow network on your generated flyingchairs dataset. But our method needs camera parameters as input, could you provide such information for us.
I notice that in your paper there are two occlusion maps for the two inputs. But in the code I find there is only one occluision map output.
loss_dict_per_step, output_dict, batch_size = self._step(example_dict)
How can i obtain the two occlusion map at the same time?
Thank you!
Hello, I'm very impressed by your amazing work!
The problem is that I cannot find your FlyingChairsOcc dataset or the code that contains how you process data from the original datasets to get your FlyingChairsOcc dataset.
Could you please share your dataset or your processing code?
Like if I try to do the quantization finetune over Sintel dataset, is there any parameter needed to be adjust, like learning rate, or something else?
Thx.
Hi, Junhwa!
I found that the total_epochs of second round in irr/scripts/IRR-PWC_sintel_train_full.sh is 591, Is this correct?
irr/scripts/IRR-PWC_sintel_train_full.sh
Line 63 in 9a3f66d
I tried to download revised GT of MPI sintel. however the link refused to connect.
would you check the link still alive?
https://download.visinf.tu-darmstadt.de/data/flyingchairs_occ/occlusions_rev.zip
Hi,
I was just wondering, how much GPU memory is needed for training?
I tried to train on KITTI with a batch size of 1 on a 16 GB GPU and I got out-of-memory error!
Thank you.
Hi ~
Thanks for your wonderful work and codes!
I have re-trained the flownets according to your codes. Though the performance is a little worse than yours results in paper, I thought it is still reasonable.
Then I tried to re-trained the flownetc, and I found there aren't codes about flownetc, so I wrote the codes by myself according to flownet paper and your pwcnet codes (correlation ops in codes). But I found the loss of flownetc can't decrease after many epoches (10+ epoches). So I am very confused about this phenomenon.
Therefore, I wonder that: (1) have you tried to train the flownetc according to your own codes? (2) can you give me some suggestions, such as some possible wrong operations, or should I adjust some parts (original learning rate, data augmentation) in codes ?
Your reply will be very helpful for me, and I wish to hear from you soon!
Bset wishes!
Blcony
could you explain please what are these files that required to upload to kitti_2015 (Provide a zip file which contains the 'disp_0' directory (stereo), the 'flow' directory (flow), or the 'disp_0', 'disp_1' and 'flow' directories (scene flow) in its root folder. Use the file format and naming described in the readme.txt (000000_10.png,...,000199_10.png).
how to save them?
thanks in advance..
Hi!
In the paper, it says that the same geometric and photometric augmentations are implemented as that of Flownet2. However, I noticed that same parameters are distinct comparing to that in https://github.com/lmb-freiburg/flownet2, and an additional Hue transform is implemented, while the 'eigen vector chromatic' transform is not implemented. Are those augmentations and corresponding parameters in this code what were applied to the data during training and finetuning?
Thanks!
Hi~
Thanks for your wonderful work and codes!
I am a newcomer in the field of optical flow. So I am a littel confused about the meaning of the FlyingThings3D_subset. Should I download the datasets which are drawn by red lines in figure below directly? Or there are another download link that I haven't found?
Your reply will be very helpful for me, and I wish to hear from you soon!
Bset wishes!
Blcony
import correlation_cuda
ImportError: libcudart.so.9.1: cannot open shared object file: No such file or directory
torch=1.1.0
torchvision=0.3.0
my system is ubuntu 16.04
I got this cuda version using this command:
cat /usr/local/cuda/version.txt
CUDA Version 9.0.176
but it is CUDA Version: 11.2 when i am using the command nvcc-smi
how could I solve this problem please
the correlation cuda is run correctly without errors
but this error happend when I start the training
hi, @hurjunhwa , I noticed you provide the training script for the baseline: pwcnet. But I wonder if it is for flycharis_occ dataset only or it's applicable to other datasets. I mean, if I want to train pwcnet for other datasets to achieve the expected performance in paper, do I need to change the hypermeters in the config file of pwcnet.sh? If yes, can you provide me with those files? Thanks a lot!
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.