Code Monkey home page Code Monkey logo

irr's People

Contributors

hurjunhwa avatar longerzrlong avatar sroth-visinf avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

irr's Issues

Reducing GPU memory usage

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 ^^

Sintel occ

Hi!

I have noticed that the name of sintel occ floder in datasets/sintel.py is occlusions_rev.

occ_root = os.path.join(dir_root, "occlusions_rev")

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?

train epoch problem

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?

Args Module

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.
Selection_001

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

The result of SintelTrainingFinalValid

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?

Could you please show how to process KITTI images when inferring?

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!

Function rescale_flow modifies input variables

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.

def rescale_flow(flow, div_flow, width_im, height_im, to_local=True):
if to_local:
u_scale = float(flow.size(3) / width_im / div_flow)
v_scale = float(flow.size(2) / height_im / div_flow)
else:
u_scale = float(width_im * div_flow / flow.size(3))
v_scale = float(height_im * div_flow / flow.size(2))
u, v = flow.chunk(2, dim=1)
u *= u_scale
v *= v_scale
return torch.cat([u, v], dim=1)

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.

irr/models/IRR_PWC.py

Lines 125 to 133 in 3c0468b

img2_warp = self.warping_layer(img2_resize, rescale_flow(flow_cont_f, self._div_flow, width_im, height_im, to_local=False), height_im, width_im, self._div_flow)
img1_warp = self.warping_layer(img1_resize, rescale_flow(flow_cont_b, self._div_flow, width_im, height_im, to_local=False), height_im, width_im, self._div_flow)
# flow refine
flow_f = self.refine_flow(flow_cont_f.detach(), img1_resize - img2_warp, x1_1by1)
flow_b = self.refine_flow(flow_cont_b.detach(), img2_resize - img1_warp, x2_1by1)
flow_cont_f = rescale_flow(flow_cont_f, self._div_flow, width_im, height_im, to_local=False)
flow_cont_b = rescale_flow(flow_cont_b, self._div_flow, width_im, height_im, to_local=False)

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

Multi-gpu training

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!

error while running ./install.sh

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

RuntimeError: CuDNN error: CUDNN_STATUS_MAPPING_ERROR

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

MultiScaleEPE_PWC loss not right

hi, I was trying to train my own datasets and use the MultiScaleEPE_PWC loss, but something is wrong as follows:
image
during debugging, I found in class MultiScaleEPE_PWC:
image
used the
image
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'?

Which pytorch version is expected?

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?

can't run correlation package on google colab

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 ?!

About the Zoom coefficient and Rotation coefficient

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!

RuntimeError: CUDA out of memory.

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

What confuses me is how this work handles input and output.

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?

Hi,How to test large images?

Thanks for your share code,that's great.
But there is a problem, when I test large size images, the GPU is not enough.
So I cut the picture into four pieces
and stitched them after testing. But the lines are obvious.
Could you tell me how to improve that?

glt

High EPE on the KITTI dataset

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.

Question about feature warping.

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

irr/models/pwcnet.py

Lines 68 to 69 in 4d7f6aa

flow = upsample2d_as(flow, x1, mode="bilinear")
x2_warp = self.warping_layer(x2, flow, height_im, width_im, self._div_flow)
and

irr/models/IRR_PWC.py

Lines 82 to 88 in 4d7f6aa

else:
flow_f = upsample2d_as(flow_f, x1, mode="bilinear")
flow_b = upsample2d_as(flow_b, x2, mode="bilinear")
occ_f = upsample2d_as(occ_f, x1, mode="bilinear")
occ_b = upsample2d_as(occ_b, x2, mode="bilinear")
x2_warp = self.warping_layer(x2, flow_f, height_im, width_im, self._div_flow)
x1_warp = self.warping_layer(x1, flow_b, height_im, width_im, self._div_flow)

Could you please explain a little about these?

Best regards,
Meow

Numeric instability in warping module

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:

im1
Im1

im2_warp
Im2_warp

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.

irr/models/pwc_modules.py

Lines 106 to 108 in 3c0468b

mask = torch.ones(x.size(), requires_grad=False).cuda()
mask = tf.grid_sample(mask, grid)
mask = (mask >= 1.0).float()

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.

why so many issues are closed without being solved?

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.

Failing to reproduce IRR-PWC results on KITTI

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:

  • Yours (from "saved_check_point/pwcnet/IRR-PWC_kitti/checkpoint_latest.ckpt"): epe_avg=1.33, outlier_avg=0.0421.
  • Mine (after running your finetune script as-is): epe_avg=2.517, outlier_avg=0.0856 (almost double!)
  • Reference (from "saved_check_point/pwcnet/IRR-PWC_things3d/checkpoint_latest.ckpt"): epe_avg=2.552, outlier_avg=0.0864

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

How to install the Correlation module?

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 :(
image

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

Encountered a little problem in the inference phase

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.

Inference speed

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

Changing Network Structure

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

Confused by if statement: 'if (f_loss.data > o_loss.data).numpy:'

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!

Gradient explosion after correcting the losses.py

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.

error: command '/usr/local/cuda/bin/nvcc' failed with exit status 1

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

Saved check point for things3d_subset

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.
:)

Camera parameters of Flyingchairs dataset

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.

only one occlusion map

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!

How can I get the FlyingChairsOcc dataset ?

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?

How to finetune the model?

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.

how to choose VALIDATION_INDICES ?

Hi,
in sintel.py you fixed the VALIDATION_INDICES as follows:

image
I was wondering if these values are chosen meaningfully. Means five clips? What will happen if I want to choose indices randomly?

GPU memory needed for trainig

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.

Questions about FlownetC

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

how to prepare data for kitti testing

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..

About data augmentions and their parameters

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!

Questions about FlyingThings3D_subset

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?

FlyingThins3D_subset

Your reply will be very helpful for me, and I wish to hear from you soon!

Bset wishes!

Blcony

ImportError: libcudart.so.9.1: cannot open shared object file: No such file or directory

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

could you provide the training script for the other datasets of pwcnet?

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!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.