(base) mona@mona:~/research$ git clone https://github.com/yinyunie/Total3DUnderstanding.git
Cloning into 'Total3DUnderstanding'...
remote: Enumerating objects: 206, done.
remote: Counting objects: 100% (206/206), done.
remote: Compressing objects: 100% (181/181), done.
remote: Total 206 (delta 31), reused 192 (delta 20), pack-reused 0
Receiving objects: 100% (206/206), 4.23 MiB | 19.59 MiB/s, done.
Resolving deltas: 100% (31/31), done.
(base) mona@mona:~/research$ cd Total3DUnderstanding/
(base) mona@mona:~/research/Total3DUnderstanding$ conda env create -f environment.yml
Collecting package metadata (repodata.json): done
Solving environment: done
Β Downloading and Extracting Packages
numpy-1.18.1 | 5 KB | ################################################# | 100%
torchvision-0.3.0 | 3.7 MB | ################################################# | 100%
cffi-1.14.0 | 225 KB | ################################################# | 100%
cudatoolkit-9.0 | 237.0 MB | ################################################# | 100%
libxml2-2.9.10 | 1.2 MB | ################################################# | 100%
six-1.15.0 | 27 KB | ################################################# | 100%
libnetcdf-4.6.1 | 833 KB | ################################################# | 100%
pillow-7.1.2 | 604 KB | ################################################# | 100%
jsoncpp-1.8.4 | 132 KB | ################################################# | 100%
python-dateutil-2.8. | 215 KB | ################################################# | 100%
ninja-1.9.0 | 1.2 MB | ################################################# | 100%
future-0.18.2 | 639 KB | ################################################# | 100%
hdf4-4.2.13 | 714 KB | ################################################# | 100%
pytorch-1.1.0 | 377.0 MB | ################################################# | 100%
pyyaml-5.3.1 | 180 KB | ################################################# | 100%
mkl_random-1.1.1 | 327 KB | ################################################# | 100%
pandas-1.0.5 | 7.8 MB | ################################################# | 100%
olefile-0.46 | 48 KB | ################################################# | 100%
shapely-1.7.0 | 394 KB | ################################################# | 100%
libcurl-7.69.1 | 431 KB | ################################################# | 100%
vtk-8.2.0 | 28.4 MB | ################################################# | 100%
libogg-1.3.2 | 194 KB | ################################################# | 100%
sqlite-3.31.1 | 1.1 MB | ################################################# | 100%
mkl-service-2.3.0 | 52 KB | ################################################# | 100%
libtheora-1.1.1 | 330 KB | ################################################# | 100%
libvorbis-1.3.6 | 389 KB | ################################################# | 100%
mkl_fft-1.0.15 | 155 KB | ################################################# | 100%
numpy-base-1.18.1 | 4.2 MB | ################################################# | 100%
scipy-1.4.1 | 14.6 MB | ################################################# | 100%
curl-7.69.1 | 137 KB | ################################################# | 100%
setuptools-47.1.1 | 514 KB | ################################################# | 100%
pip-20.0.2 | 1.7 MB | ################################################# | 100%
certifi-2020.6.20 | 155 KB | ################################################# | 100%
Preparing transaction: done
Verifying transaction: done
Executing transaction: done
Installing pip dependencies: / Ran pip subprocess with arguments:
['/home/mona/anaconda3/envs/Total3D/bin/python', '-m', 'pip', 'install', '-U', '-r', '/home/mona/research/Total3DUnderstanding/condaenv.usbz06he.requirements.txt']
Pip subprocess output:
Collecting cycler==0.10.0
Using cached cycler-0.10.0-py2.py3-none-any.whl (6.5 kB)
Collecting jellyfish==0.8.2
Downloading jellyfish-0.8.2-cp36-cp36m-manylinux2014_x86_64.whl (93 kB)
Collecting kiwisolver==1.2.0
Using cached kiwisolver-1.2.0-cp36-cp36m-manylinux1_x86_64.whl (88 kB)
Collecting matplotlib==3.2.2
Downloading matplotlib-3.2.2-cp36-cp36m-manylinux1_x86_64.whl (12.4 MB)
Collecting opencv-python==4.2.0.34
Downloading opencv_python-4.2.0.34-cp36-cp36m-manylinux1_x86_64.whl (28.2 MB)
Collecting pyparsing==2.4.7
Using cached pyparsing-2.4.7-py2.py3-none-any.whl (67 kB)
Collecting seaborn==0.10.1
Using cached seaborn-0.10.1-py3-none-any.whl (215 kB)
Requirement already satisfied, skipping upgrade: six in /home/mona/anaconda3/envs/Total3D/lib/python3.6/site-packages (from cycler==0.10.0->-r /home/mona/research/Total3DUnderstanding/condaenv.usbz06he.requirements.txt (line 1)) (1.15.0)
Requirement already satisfied, skipping upgrade: numpy>=1.11 in /home/mona/anaconda3/envs/Total3D/lib/python3.6/site-packages (from matplotlib==3.2.2->-r /home/mona/research/Total3DUnderstanding/condaenv.usbz06he.requirements.txt (line 4)) (1.18.1)
Requirement already satisfied, skipping upgrade: python-dateutil>=2.1 in /home/mona/anaconda3/envs/Total3D/lib/python3.6/site-packages (from matplotlib==3.2.2->-r /home/mona/research/Total3DUnderstanding/condaenv.usbz06he.requirements.txt (line 4)) (2.8.1)
Requirement already satisfied, skipping upgrade: scipy>=1.0.1 in /home/mona/anaconda3/envs/Total3D/lib/python3.6/site-packages (from seaborn==0.10.1->-r /home/mona/research/Total3DUnderstanding/condaenv.usbz06he.requirements.txt (line 7)) (1.4.1)
Requirement already satisfied, skipping upgrade: pandas>=0.22.0 in /home/mona/anaconda3/envs/Total3D/lib/python3.6/site-packages (from seaborn==0.10.1->-r /home/mona/research/Total3DUnderstanding/condaenv.usbz06he.requirements.txt (line 7)) (1.0.5)
Requirement already satisfied, skipping upgrade: pytz>=2017.2 in /home/mona/anaconda3/envs/Total3D/lib/python3.6/site-packages (from pandas>=0.22.0->seaborn==0.10.1->-r /home/mona/research/Total3DUnderstanding/condaenv.usbz06he.requirements.txt (line 7)) (2020.1)
Installing collected packages: cycler, jellyfish, kiwisolver, pyparsing, matplotlib, opencv-python, seaborn
Successfully installed cycler-0.10.0 jellyfish-0.8.2 kiwisolver-1.2.0 matplotlib-3.2.2 opencv-python-4.2.0.34 pyparsing-2.4.7 seaborn-0.10.1
Β done
#
# To activate this environment, use
#
# $ conda activate Total3D
#
# To deactivate an active environment, use
#
# $ conda deactivate
Β (base) mona@mona:~/research/Total3DUnderstanding$ conda activate Total3D
(Total3D) mona@mona:~/research/Total3DUnderstanding$ python main.py configs/total3d.yaml --mode demo --demo_path demo/inputs/1
Loading configurations.
{'method': 'TOTAL3D', 'resume': False, 'finetune': True, 'weight': ['out/pretrained_models/pretrained_model.pth'], 'seed': 123, 'device': {'use_gpu': True, 'gpu_ids': '0', 'num_workers': 2}, 'data': {'dataset': 'sunrgbd', 'split': 'data/sunrgbd/splits', 'tmn_subnetworks': 2, 'face_samples': 1, 'with_edge_classifier': True}, 'model': {'layout_estimation': {'method': 'PoseNet', 'loss': 'PoseLoss'}, 'object_detection': {'method': 'Bdb3DNet', 'loss': 'DetLoss'}, 'mesh_reconstruction': {'method': 'DensTMNet', 'loss': 'ReconLoss'}}, 'optimizer': {'method': 'Adam', 'lr': '1e-4', 'betas': [0.9, 0.999], 'eps': '1e-08', 'weight_decay': '1e-04'}, 'scheduler': {'patience': 5, 'factor': 0.5, 'threshold': 0.01}, 'train': {'epochs': 400, 'phase': 'joint', 'freeze': ['mesh_reconstruction'], 'batch_size': 2}, 'test': {'phase': 'joint', 'batch_size': 2}, 'demo': {'phase': 'joint'}, 'log': {'vis_path': 'out/total3d/2020-12-09T15:00:36.822598/visualization', 'save_results': True, 'vis_step': 100, 'print_step': 50, 'path': 'out/total3d/2020-12-09T15:00:36.822598'}, 'config': 'configs/total3d.yaml', 'mode': 'demo', 'demo_path': 'demo/inputs/1'}
Data save path: out/total3d/2020-12-09T15:00:36.822598
Loading device settings.
GPU mode is on.
GPU Ids: 0 used.
Loading model.
Downloading: "https://download.pytorch.org/models/resnet34-333f7ec4.pth" to /home/mona/.cache/torch/checkpoints/resnet34-333f7ec4.pth
100.0%
Downloading: "https://download.pytorch.org/models/resnet18-5c106cde.pth" to /home/mona/.cache/torch/checkpoints/resnet18-5c106cde.pth
100.0%
TOTAL3D(
(layout_estimation): DataParallel(
(module): PoseNet(
(resnet): ResNet(
(conv1): Conv2d(3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False)
(bn1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(relu): ReLU(inplace)
(maxpool): MaxPool2d(kernel_size=3, stride=2, padding=1, dilation=1, ceil_mode=False)
(layer1): Sequential(
(0): BasicBlock(
(conv1): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
(bn1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(relu): ReLU(inplace)
(conv2): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
(bn2): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
)
(1): BasicBlock(
(conv1): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
(bn1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(relu): ReLU(inplace)
(conv2): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
(bn2): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
)
(2): BasicBlock(
(conv1): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
(bn1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(relu): ReLU(inplace)
(conv2): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
(bn2): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
)
)
(layer2): Sequential(
(0): BasicBlock(
(conv1): Conv2d(64, 128, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), bias=False)
(bn1): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(relu): ReLU(inplace)
(conv2): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
(bn2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(downsample): Sequential(
(0): Conv2d(64, 128, kernel_size=(1, 1), stride=(2, 2), bias=False)
(1): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
)
)
(1): BasicBlock(
(conv1): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
(bn1): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(relu): ReLU(inplace)
(conv2): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
(bn2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
)
(2): BasicBlock(
(conv1): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
(bn1): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(relu): ReLU(inplace)
(conv2): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
(bn2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
)
(3): BasicBlock(
(conv1): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
(bn1): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(relu): ReLU(inplace)
(conv2): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
(bn2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
)
)
(layer3): Sequential(
(0): BasicBlock(
(conv1): Conv2d(128, 256, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), bias=False)
(bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(relu): ReLU(inplace)
(conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
(bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(downsample): Sequential(
(0): Conv2d(128, 256, kernel_size=(1, 1), stride=(2, 2), bias=False)
(1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
)
)
(1): BasicBlock(
(conv1): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
(bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(relu): ReLU(inplace)
(conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
(bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
)
(2): BasicBlock(
(conv1): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
(bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(relu): ReLU(inplace)
(conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
(bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
)
(3): BasicBlock(
(conv1): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
(bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(relu): ReLU(inplace)
(conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
(bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
)
(4): BasicBlock(
(conv1): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
(bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(relu): ReLU(inplace)
(conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
(bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
)
(5): BasicBlock(
(conv1): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
(bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(relu): ReLU(inplace)
(conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
(bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
)
)
(layer4): Sequential(
(0): BasicBlock(
(conv1): Conv2d(256, 512, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), bias=False)
(bn1): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(relu): ReLU(inplace)
(conv2): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
(bn2): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(downsample): Sequential(
(0): Conv2d(256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False)
(1): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
)
)
(1): BasicBlock(
(conv1): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
(bn1): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(relu): ReLU(inplace)
(conv2): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
(bn2): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
)
(2): BasicBlock(
(conv1): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
(bn1): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(relu): ReLU(inplace)
(conv2): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
(bn2): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
)
)
(avgpool): AvgPool2d(kernel_size=7, stride=1, padding=0)
)
(fc_1): Linear(in_features=2048, out_features=1024, bias=True)
(fc_2): Linear(in_features=1024, out_features=8, bias=True)
(fc_layout): Linear(in_features=2048, out_features=2048, bias=True)
(fc_3): Linear(in_features=2048, out_features=1024, bias=True)
(fc_4): Linear(in_features=1024, out_features=4, bias=True)
(fc_5): Linear(in_features=2048, out_features=1024, bias=True)
(fc_6): Linear(in_features=1024, out_features=6, bias=True)
(relu_1): LeakyReLU(negative_slope=0.2, inplace)
(dropout_1): Dropout(p=0.5)
)
)
(object_detection): Bdb3DNet(
(resnet): DataParallel(
(module): ResNet(
(conv1): Conv2d(3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False)
(bn1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(relu): ReLU(inplace)
(maxpool): MaxPool2d(kernel_size=3, stride=2, padding=1, dilation=1, ceil_mode=False)
(layer1): Sequential(
(0): BasicBlock(
(conv1): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
(bn1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(relu): ReLU(inplace)
(conv2): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
(bn2): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
)
(1): BasicBlock(
(conv1): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
(bn1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(relu): ReLU(inplace)
(conv2): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
(bn2): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
)
(2): BasicBlock(
(conv1): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
(bn1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(relu): ReLU(inplace)
(conv2): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
(bn2): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
)
)
(layer2): Sequential(
(0): BasicBlock(
(conv1): Conv2d(64, 128, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), bias=False)
(bn1): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(relu): ReLU(inplace)
(conv2): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
(bn2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(downsample): Sequential(
(0): Conv2d(64, 128, kernel_size=(1, 1), stride=(2, 2), bias=False)
(1): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
)
)
(1): BasicBlock(
(conv1): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
(bn1): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(relu): ReLU(inplace)
(conv2): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
(bn2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
)
(2): BasicBlock(
(conv1): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
(bn1): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(relu): ReLU(inplace)
(conv2): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
(bn2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
)
(3): BasicBlock(
(conv1): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
(bn1): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(relu): ReLU(inplace)
(conv2): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
(bn2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
)
)
(layer3): Sequential(
(0): BasicBlock(
(conv1): Conv2d(128, 256, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), bias=False)
(bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(relu): ReLU(inplace)
(conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
(bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(downsample): Sequential(
(0): Conv2d(128, 256, kernel_size=(1, 1), stride=(2, 2), bias=False)
(1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
)
)
(1): BasicBlock(
(conv1): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
(bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(relu): ReLU(inplace)
(conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
(bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
)
(2): BasicBlock(
(conv1): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
(bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(relu): ReLU(inplace)
(conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
(bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
)
(3): BasicBlock(
(conv1): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
(bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(relu): ReLU(inplace)
(conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
(bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
)
(4): BasicBlock(
(conv1): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
(bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(relu): ReLU(inplace)
(conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
(bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
)
(5): BasicBlock(
(conv1): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
(bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(relu): ReLU(inplace)
(conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
(bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
)
)
(layer4): Sequential(
(0): BasicBlock(
(conv1): Conv2d(256, 512, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), bias=False)
(bn1): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(relu): ReLU(inplace)
(conv2): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
(bn2): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(downsample): Sequential(
(0): Conv2d(256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False)
(1): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
)
)
(1): BasicBlock(
(conv1): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
(bn1): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(relu): ReLU(inplace)
(conv2): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
(bn2): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
)
(2): BasicBlock(
(conv1): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
(bn1): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(relu): ReLU(inplace)
(conv2): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
(bn2): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
)
)
(avgpool): AvgPool2d(kernel_size=7, stride=1, padding=0)
)
)
(relnet): RelationNet(
(fc_g): Linear(in_features=64, out_features=16, bias=True)
(threshold): Threshold(threshold=1e-06, value=1e-06)
(softmax): Softmax()
(fc_K): Linear(in_features=2048, out_features=1024, bias=True)
(fc_Q): Linear(in_features=2048, out_features=1024, bias=True)
(conv_s): Conv1d(1, 1, kernel_size=(1,), stride=(1,))
)
(fc1): Linear(in_features=2089, out_features=128, bias=True)
(fc2): Linear(in_features=128, out_features=3, bias=True)
(fc3): Linear(in_features=2089, out_features=128, bias=True)
(fc4): Linear(in_features=128, out_features=12, bias=True)
(fc5): Linear(in_features=2089, out_features=128, bias=True)
(fc_centroid): Linear(in_features=128, out_features=12, bias=True)
(fc_off_1): Linear(in_features=2089, out_features=128, bias=True)
(fc_off_2): Linear(in_features=128, out_features=2, bias=True)
(relu_1): LeakyReLU(negative_slope=0.2)
(dropout_1): Dropout(p=0.5)
)
(mesh_reconstruction): DataParallel(
(module): DensTMNet(
(encoder): ResNet_Full(
(conv1): Conv2d(3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False)
(bn1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(relu): ReLU(inplace)
(maxpool): MaxPool2d(kernel_size=3, stride=2, padding=1, dilation=1, ceil_mode=False)
(layer1): Sequential(
(0): BasicBlock(
(conv1): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
(bn1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(relu): ReLU(inplace)
(conv2): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
(bn2): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
)
(1): BasicBlock(
(conv1): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
(bn1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(relu): ReLU(inplace)
(conv2): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
(bn2): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
)
)
(layer2): Sequential(
(0): BasicBlock(
(conv1): Conv2d(64, 128, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), bias=False)
(bn1): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(relu): ReLU(inplace)
(conv2): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
(bn2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(downsample): Sequential(
(0): Conv2d(64, 128, kernel_size=(1, 1), stride=(2, 2), bias=False)
(1): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
)
)
(1): BasicBlock(
(conv1): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
(bn1): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(relu): ReLU(inplace)
(conv2): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
(bn2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
)
)
(layer3): Sequential(
(0): BasicBlock(
(conv1): Conv2d(128, 256, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), bias=False)
(bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(relu): ReLU(inplace)
(conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
(bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(downsample): Sequential(
(0): Conv2d(128, 256, kernel_size=(1, 1), stride=(2, 2), bias=False)
(1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
)
)
(1): BasicBlock(
(conv1): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
(bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(relu): ReLU(inplace)
(conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
(bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
)
)
(layer4): Sequential(
(0): BasicBlock(
(conv1): Conv2d(256, 512, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), bias=False)
(bn1): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(relu): ReLU(inplace)
(conv2): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
(bn2): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(downsample): Sequential(
(0): Conv2d(256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False)
(1): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
)
)
(1): BasicBlock(
(conv1): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
(bn1): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(relu): ReLU(inplace)
(conv2): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
(bn2): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
)
)
(avgpool): AvgPool2d(kernel_size=7, stride=7, padding=0)
(fc): Linear(in_features=512, out_features=1024, bias=True)
)
(decoders): ModuleList(
(0): PointGenCon(
(conv1): Conv1d(1036, 1036, kernel_size=(1,), stride=(1,))
(conv2): Conv1d(1036, 518, kernel_size=(1,), stride=(1,))
(conv3): Conv1d(518, 259, kernel_size=(1,), stride=(1,))
(conv4): Conv1d(259, 3, kernel_size=(1,), stride=(1,))
(th): Tanh()
(bn1): BatchNorm1d(1036, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(bn2): BatchNorm1d(518, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(bn3): BatchNorm1d(259, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
)
(1): PointGenCon(
(conv1): Conv1d(1036, 1036, kernel_size=(1,), stride=(1,))
(conv2): Conv1d(1036, 518, kernel_size=(1,), stride=(1,))
(conv3): Conv1d(518, 259, kernel_size=(1,), stride=(1,))
(conv4): Conv1d(259, 3, kernel_size=(1,), stride=(1,))
(th): Tanh()
(bn1): BatchNorm1d(1036, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(bn2): BatchNorm1d(518, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(bn3): BatchNorm1d(259, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
)
)
(error_estimators): ModuleList(
(0): EREstimate(
(conv1): Conv1d(1036, 1036, kernel_size=(1,), stride=(1,))
(conv2): Conv1d(1036, 518, kernel_size=(1,), stride=(1,))
(conv3): Conv1d(518, 259, kernel_size=(1,), stride=(1,))
(conv4): Conv1d(259, 1, kernel_size=(1,), stride=(1,))
(bn1): BatchNorm1d(1036, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(bn2): BatchNorm1d(518, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(bn3): BatchNorm1d(259, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
)
)
)
)
)
Begin to finetune from the existing weight.
Loading checkpoint from out/pretrained_models/pretrained_model.pth.
set() subnet missed.
Weights for finetuning loaded.
----------------------------------------------------------------------------------------------------
Loading data.
Traceback (most recent call last):
File "main.py", line 38, in <module>
demo.run(cfg)
File "/home/mona/research/Total3DUnderstanding/demo.py", line 147, in run
est_data = net(data)
File "/home/mona/anaconda3/envs/Total3D/lib/python3.6/site-packages/torch/nn/modules/module.py", line 493, in __call__
result = self.forward(*input, **kwargs)
File "/home/mona/research/Total3DUnderstanding/models/total3d/modules/network.py", line 67, in forward
lo_centroid_result, lo_coeffs_result = self.layout_estimation(data['image'])
File "/home/mona/anaconda3/envs/Total3D/lib/python3.6/site-packages/torch/nn/modules/module.py", line 493, in __call__
result = self.forward(*input, **kwargs)
File "/home/mona/anaconda3/envs/Total3D/lib/python3.6/site-packages/torch/nn/parallel/data_parallel.py", line 150, in forward
return self.module(*inputs[0], **kwargs[0])
File "/home/mona/anaconda3/envs/Total3D/lib/python3.6/site-packages/torch/nn/modules/module.py", line 493, in __call__
result = self.forward(*input, **kwargs)
File "/home/mona/research/Total3DUnderstanding/models/total3d/modules/layout_estimation.py", line 63, in forward
cam = self.fc_1(x)
File "/home/mona/anaconda3/envs/Total3D/lib/python3.6/site-packages/torch/nn/modules/module.py", line 493, in __call__
result = self.forward(*input, **kwargs)
File "/home/mona/anaconda3/envs/Total3D/lib/python3.6/site-packages/torch/nn/modules/linear.py", line 92, in forward
return F.linear(input, self.weight, self.bias)
File "/home/mona/anaconda3/envs/Total3D/lib/python3.6/site-packages/torch/nn/functional.py", line 1406, in linear
ret = torch.addmm(bias, input, weight.t())
RuntimeError: cublas runtime error : the GPU program failed to execute at /opt/conda/conda-bld/pytorch_1556653183467/work/aten/src/THC/THCBlas.cu:259
(Total3D) mona@mona:~/research/Total3DUnderstanding$ python
Python 3.6.10 |Anaconda, Inc.| (default, May 8 2020, 02:54:21)
[GCC 7.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import torch
>>> torch.cuda.is_available()
True
>>> torch.__version__
'1.1.0'
>>> quit()
(Total3D) mona@mona:~/research/Total3DUnderstanding$ ls
total 104K
drwxrwxr-x 30 mona mona 4.0K Dec 9 14:42 ..
-rw-rw-r-- 1 mona mona 7.6K Dec 9 14:42 README.md
-rw-rw-r-- 1 mona mona 1.1K Dec 9 14:42 LICENSE
drwxrwxr-x 4 mona mona 4.0K Dec 9 14:42 data
-rwxrwxr-x 1 mona mona 9.4K Dec 9 14:42 demo.py
drwxrwxr-x 4 mona mona 4.0K Dec 9 14:42 demo
drwxrwxr-x 4 mona mona 4.0K Dec 9 14:42 external
-rw-rw-r-- 1 mona mona 1.5K Dec 9 14:42 environment.yml
drwxrwxr-x 2 mona mona 4.0K Dec 9 14:42 utils
-rwxrwxr-x 1 mona mona 2.0K Dec 9 14:42 train.py
-rwxrwxr-x 1 mona mona 3.4K Dec 9 14:42 train_epoch.py
-rwxrwxr-x 1 mona mona 1.4K Dec 9 14:42 test.py
-rwxrwxr-x 1 mona mona 1.6K Dec 9 14:42 test_epoch.py
-rw-rw-r-- 1 mona mona 430 Dec 9 14:42 requirements.txt
-rwxrwxr-x 1 mona mona 1.2K Dec 9 14:42 main.py
drwxrwxr-x 8 mona mona 4.0K Dec 9 14:42 .git
drwxrwxr-x 3 mona mona 4.0K Dec 9 15:00 configs
drwxrwxr-x 3 mona mona 4.0K Dec 9 15:00 net_utils
drwxrwxr-x 4 mona mona 4.0K Dec 9 15:00 out
drwxrwxr-x 6 mona mona 4.0K Dec 9 15:00 models
drwxrwxr-x 3 mona mona 4.0K Dec 9 15:00 libs
drwxrwxr-x 2 mona mona 4.0K Dec 9 15:00 __pycache__
drwxrwxr-x 13 mona mona 4.0K Dec 9 15:00 .
(Total3D) mona@mona:~/research/Total3DUnderstanding$ bat environment.yml
ββββββββ¬βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β File: environment.yml
ββββββββΌβββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
1 β name: Total3D
2 β channels:
3 β - pytorch
4 β - defaults
5 β dependencies:
6 β - _libgcc_mutex=0.1
7 β - blas=1.0
8 β - bzip2=1.0.8
9 β - ca-certificates=2020.1.1
10 β - certifi=2020.6.20
11 β - cffi=1.14.0
12 β - cudatoolkit=9.0
13 β - curl=7.69.1
14 β - expat=2.2.6
15 β - freetype=2.9.1
16 β - future=0.18.2
17 β - geos=3.8.0
18 β - hdf4=4.2.13
19 β - hdf5=1.10.4
20 β - icu=58.2
21 β - intel-openmp=2020.1
22 β - jpeg=9b
23 β - jsoncpp=1.8.4
24 β - krb5=1.17.1
25 β - ld_impl_linux-64=2.33.1
26 β - libcurl=7.69.1
27 β - libedit=3.1.20181209
28 β - libffi=3.3
29 β - libgcc-ng=9.1.0
30 β - libgfortran-ng=7.3.0
31 β - libnetcdf=4.6.1
32 β - libogg=1.3.2
33 β - libpng=1.6.37
34 β - libssh2=1.9.0
35 β - libstdcxx-ng=9.1.0
36 β - libtheora=1.1.1
37 β - libtiff=4.1.0
38 β - libvorbis=1.3.6
39 β - libxml2=2.9.10
40 β - lz4-c=1.8.1.2
41 β - mkl=2020.1
42 β - mkl-service=2.3.0
43 β - mkl_fft=1.0.15
44 β - mkl_random=1.1.1
45 β - ncurses=6.2
46 β - ninja=1.9.0
47 β - numpy=1.18.1
48 β - numpy-base=1.18.1
49 β - olefile=0.46
50 β - openssl=1.1.1g
51 β - pandas=1.0.5
52 β - pillow=7.1.2
53 β - pip=20.0.2
54 β - pycparser=2.20
55 β - python=3.6.10
56 β - python-dateutil=2.8.1
57 β - pytorch=1.1.0
58 β - pytz=2020.1
59 β - pyyaml=5.3.1
60 β - readline=8.0
61 β - scipy=1.4.1
62 β - setuptools=47.1.1
63 β - shapely=1.7.0
64 β - six=1.15.0
65 β - sqlite=3.31.1
66 β - tbb=2020.0
67 β - tk=8.6.8
68 β - torchvision=0.3.0
69 β - vtk=8.2.0
70 β - wheel=0.34.2
71 β - xz=5.2.5
72 β - yaml=0.1.7
73 β - zlib=1.2.11
74 β - zstd=1.3.7
75 β - pip:
76 β - cycler==0.10.0
77 β - jellyfish==0.8.2
78 β - kiwisolver==1.2.0
79 β - matplotlib==3.2.2
80 β - opencv-python==4.2.0.34
81 β - pyparsing==2.4.7
82 β - seaborn==0.10.1
83 β
Β Β Β $ 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
Β Β Β $ nvidia-smi
Wed Dec 9 15:14:27 2020
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 450.80.02 Driver Version: 450.80.02 CUDA Version: 11.0 |
|-------------------------------+----------------------+----------------------+
| 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 GeForce RTX 2070 Off | 00000000:01:00.0 Off | N/A |
| N/A 49C P8 10W / N/A | 3121MiB / 7982MiB | 11% Default |
| | | N/A |
+-------------------------------+----------------------+----------------------+
Β +-----------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=============================================================================|
| 0 N/A N/A 1364 G /usr/lib/xorg/Xorg 816MiB |
| 0 N/A N/A 1797 G /usr/bin/gnome-shell 516MiB |
| 0 N/A N/A 3284 G /usr/lib/firefox/firefox 2MiB |
| 0 N/A N/A 3506 G /usr/lib/firefox/firefox 2MiB |
| 0 N/A N/A 4545 G /usr/lib/firefox/firefox 2MiB |
| 0 N/A N/A 7443 G /usr/lib/firefox/firefox 2MiB |
| 0 N/A N/A 37638 G /usr/lib/firefox/firefox 2MiB |
| 0 N/A N/A 37787 G /usr/lib/firefox/firefox 2MiB |
| 0 N/A N/A 69220 G /usr/lib/firefox/firefox 2MiB |
| 0 N/A N/A 74559 G /usr/lib/firefox/firefox 2MiB |
| 0 N/A N/A 77168 G ...AAAAAAAAA= --shared-files 136MiB |
| 0 N/A N/A 77506 C ...mona/anaconda3/bin/python 1621MiB |
+-----------------------------------------------------------------------------+
Comments