Giter Site home page Giter Site logo

ppengtang / pcl.pytorch Goto Github PK

View Code? Open in Web Editor NEW
250.0 250.0 47.0 2.2 MB

PyTorch codes for our papers "Multiple Instance Detection Network with Online Instance Classifier Refinement" and "PCL: Proposal Cluster Learning for Weakly Supervised Object Detection".

License: MIT License

Python 98.36% MATLAB 0.58% Shell 0.22% Cython 0.83%

pcl.pytorch's People

Contributors

ppengtang 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

pcl.pytorch's Issues

About mAP

According to the operation of read me file, the value of mAP is 47.8%, which is a little different from what the author said. Is this normal? Can I adjust the parameters to make it larger?

About Dropout

Thanks for your outstanding work first.
You use dropout in the 2 fc_layer in your caffe version code here , but not here, does it work for the model?
Thanks.

About PCLLosses

About PCLLosses line 198

for c in range(channels):
if im_labels[0, c] != 0:
if c == 0:
for i in range(batch_size):
if labels[0, i] == 0:
loss -= cls_loss_weights[0, i] * torch.log(pcl_probs[i, c])
else:
for i in range(pc_labels.size(0)):
if pc_probs[0, i] == c:
loss -= img_cls_loss_weights[0, i] * torch.log(pc_probs[0, i])

The condition should be pc_labels[0, i] == c

I have found the c version.

__global__ void PCLLossesForward(const int nthreads, const float* bottom_data,
const float* labels, const float* cls_loss_weights, const float* pc_labels,
const float* pc_probs, const float* img_cls_loss_weights,
const float* im_labels, const int batch_size, const int num_positive, float* top_data)
{
CUDA_KERNEL_LOOP(index, nthreads)
{
top_data[index] = 0;
if (im_labels[index] != 0) {
if (index == 0) {
for (int i = 0; i < batch_size; i++) {
if (labels[i] == 0) {
top_data[index] -= cls_loss_weights[i] * log(bottom_data[i * nthreads + index]);
}
}
}
else {
for (int i = 0; i < num_positive; i++) {
if (pc_labels[i] == index) {
top_data[index] -= img_cls_loss_weights[i] * log(pc_probs[i]);
}
}
}
}
}
}

About the use of 'tools/reval.py' in README.md file.

Evaluation

For mAP, run the python code tools/reval.py

./tools/reeval.py $output_dir/detections.pkl \
  --dataset voc2007test --cfg configs/baselines/vgg16_voc2007.yaml

For CorLoc, run the python code tools/reval_discovery.py

./tools/reeval.py $output_dir/discovery.pkl \
  --dataset voc2007trainval --cfg configs/baselines/vgg16_voc2007.yaml

I think it shoud have '--result_path' before   '$output_dir/detections.pkl'.I tried with this and it worked well.
I hope I make a useful suggestion.

About MCG proposals on COCO

Hi, this code is very helpful to me. I want to test it on COCO. Could you share your MCG proposals? Thank you very much!

ConnectionRefusedError

Hi, thanks for your work. I have encountered a problem while running the code. Do you have any suggestions to solve this problem?

File "lib/utils/net.py", line79, in _CorrectMomentum
optimizer.state[k_key]['momentum_buffer'] *= correction
KeyError: 'momentum_buffer'
Exception ignored in : <bound method _DataLoaderIter.del of <torch.utils.data.dataloader._DataLoaderIter object at 0x7f721b60ab00>>
ConnectionRefusedError: [Errno 111] Connection refused

I have print 'optimizer.state.keys()', it is an empty dict.
Hope to get your help to solve this problem.

Thank you.

About Batch Size

Hi, I read the code roughly and found that the training batch size of this pytorch implementation can only be 1. Because the number of selective search proposals of different image may be different and in lib/model/pcl/pcl.py, you assert batch size equal to 1.
assert num_images == 1, 'batch size shoud be equal to 1'
So, am I wrong or it's true that your code can only set batch size to 1?
Thanks.

Differences between Papers and Codes

When finding proposal cluster centers,the end condition of the cycle written in the paper is that the vertex Vk is empty in the graph.
But in code, the condition for the loop to end is count <= 5.
I don't understand a bit.

VOC 2012 test

Hi, thanks for sharing this great repo! I noticed that you have the json file of voc_2012_test.json in your google drive. I wonder if it was released? As I remember, the results should be uploaded onto the server. So, I'm curious where can I get the annotations for voc_2012_test. Thanks!

I changed cfg file for not have enough memory,and got training wrong.

I changed the cfg file as:
MODEL:
TYPE: generalized_rcnn
CONV_BODY: vgg16.dilated_conv5_body
NUM_GPUS: 1
VGG:
IMAGENET_PRETRAINED_WEIGHTS: 'data/pretrained_model/vgg16_caffe.pth'
SOLVER:
WEIGHT_DECAY: 0.0005
LR_POLICY: steps_with_decay
BASE_LR: 0.001
GAMMA: 0.1

1x schedule (note TRAIN.IMS_PER_BATCH: 1)

MAX_ITER: 10000 #50000
STEPS: [0, 35000]
FAST_RCNN:
ROI_BOX_HEAD: vgg16.roi_2mlp_head
ROI_XFORM_METHOD: RoIPoolF
ROI_XFORM_RESOLUTION: 7
MLP_HEAD_DIM: 4096
TRAIN:
SCALES: (480, 576) #(480, 576, 688, 864, 1200)
MAX_SIZE: 1000 #2000
IMS_PER_BATCH: 1
BATCH_SIZE_PER_IM: 4096 #4096
PROPOSAL_FILES: ('data/selective_search_data/voc_2007_trainval.pkl',)
TEST:
SCALE: 240 #480
MAX_SIZE: 1000 #2000
NMS: 0.3
PROPOSAL_FILES: ('data/selective_search_data',)
BBOX_AUG:
ENABLED: True
H_FLIP: True
SCALES: (576, 688) #(576, 688, 864, 1200)
SCALE_H_FLIP: True
SCORE_HEUR: 'AVG'
COORD_HEUR: 'ID'

when I training,I got this:
[Aug03-19-45-42_ltcpc_step][vgg16_voc2007.yaml][Step 10000 / 10000]
loss: 0.033960, lr: 0.001000 time: 0.545583, eta: 0:00:00
loss_im_cls: 0.003680, refine_loss0: 0.001562, refine_loss1: 0.004210, refine_loss2: 0.009765
INFO train_net_step.py: 135: save model: Outputs/vgg16_voc2007/Aug03-19-45-42_ltcpc_step/ckpt/model_step9999.pth
INFO train_net_step.py: 135: save model: Outputs/vgg16_voc2007/Aug03-19-45-42_ltcpc_step/ckpt/model_step9999.pth
Exception ignored in: <bound method _DataLoaderIter.del of <torch.utils.data.dataloader._DataLoaderIter object at 0x7f336f6fbe10>>
Traceback (most recent call last):
File "/home/ltc/anaconda3/envs/MELM/lib/python3.6/site-packages/torch/utils/data/dataloader.py", line 399, in del
self._shutdown_workers()
File "/home/ltc/anaconda3/envs/MELM/lib/python3.6/site-packages/torch/utils/data/dataloader.py", line 378, in _shutdown_workers
self.worker_result_queue.get()
File "/home/ltc/anaconda3/envs/MELM/lib/python3.6/multiprocessing/queues.py", line 337, in get
return _ForkingPickler.loads(res)
File "/home/ltc/anaconda3/envs/MELM/lib/python3.6/site-packages/torch/multiprocessing/reductions.py", line 151, in rebuild_storage_fd
fd = df.detach()
File "/home/ltc/anaconda3/envs/MELM/lib/python3.6/multiprocessing/resource_sharer.py", line 58, in detach
return reduction.recv_handle(conn)
File "/home/ltc/anaconda3/envs/MELM/lib/python3.6/multiprocessing/reduction.py", line 182, in recv_handle
return recvfds(s, 1)[0]
File "/home/ltc/anaconda3/envs/MELM/lib/python3.6/multiprocessing/reduction.py", line 155, in recvfds
raise EOFError
EOFError:

About vgg16.py

Hi,thank you for your great work!
I want to ask a question.
In class dilated_conv5_body,conv4 and conv5 have no pooling layer.
I agree that conv5 should not have the pooling layer.
But I can't understand why conv4 doesn't have a pool layer.
And according to your code,the vgg16 has only three maxpooling layer,so the spatial_scale should be 1/6.But your code is 1/8.
I don't know if I got it wrong. May I trouble you to give me some advice?
Best wishes!

Selective Search Proposals Documents

Thanks for your outstanding work first!
I want to apply the PCL model to my own datasets, but I meet some obstructs. In your model , you used Selective Search Proposals data "voc_2007_trainval.pkl" and "voc_2007_test.pkl". But I don't know how to get the two documents about my own datasets. Could you give me some tips? I would appreciate it if you could help me!

map metric

Hi author, I just wanna to know about the metric you used on VOC 2007 and 2012 respectively.

About image scales

Hi, I find the code resize the image to some scales. However, the "resize" is not based on the shortest side. For example, I find some images are resized to (432, 576) or (575, 864). The longest side is resized to the scales. Could you tell me why?

the role of `cal_minibatch_ratio`?

I see you warpped a MinibatchSampler with in BatchSampler. It seems that you want to randomly permute the data. As documented, here cal_minibatch_ratio is for "Given the ratio_list, we want to make the RATIO same for each minibatch on each GPU"

rand_perm = npr.permutation(self.num_data)
ratio_list = self.ratio_list[rand_perm]
ratio_index = self.ratio_index[rand_perm]
# re-calculate minibatch ratio list
ratio_list_minibatch = cal_minibatch_ratio(ratio_list)

However, the problem is, if cfg.TRAIN.IMS_PER_BATCH > 1, the ratios between left_idx and right_idx are unordered. The following code seems meaningless:

if ratio_list[right_idx] < 1:
# for ratio < 1, we preserve the leftmost in each batch.
target_ratio = ratio_list[left_idx]
elif ratio_list[left_idx] > 1:
# for ratio > 1, we preserve the rightmost in each batch.
target_ratio = ratio_list[right_idx]
else:
# for ratio cross 1, we make it to be 1.
target_ratio = 1

make fail

cuda 9.0
gcc 5.4

running build_ext
building 'utils.cython_bbox' extension
creating build
creating build/temp.linux-x86_64-3.6
creating build/temp.linux-x86_64-3.6/utils
gcc -pthread -B /home/userhome/anaconda3/envs/pytorch.41/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/home/userhome/anaconda3/envs/pytorch.41/lib/python3.6/site-packages/numpy/core/include -I/home/userhome/anaconda3/envs/pytorch.41/include/python3.6m -c utils/cython_bbox.c -o build/temp.linux-x86_64-3.6/utils/cython_bbox.o -Wno-cpp
creating build/lib.linux-x86_64-3.6
creating build/lib.linux-x86_64-3.6/utils
gcc -pthread -shared -B /home/userhome/anaconda3/envs/pytorch.41/compiler_compat -L/home/userhome/anaconda3/envs/pytorch.41/lib -Wl,-rpath=/home/userhome/anaconda3/envs/pytorch.41/lib -Wl,--no-as-needed -Wl,--sysroot=/ build/temp.linux-x86_64-3.6/utils/cython_bbox.o -o build/lib.linux-x86_64-3.6/utils/cython_bbox.cpython-36m-x86_64-linux-gnu.so
building 'utils.cython_nms' extension
gcc -pthread -B /home/userhome/anaconda3/envs/pytorch.41/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/home/userhome/anaconda3/envs/pytorch.41/lib/python3.6/site-packages/numpy/core/include -I/home/userhome/anaconda3/envs/pytorch.41/include/python3.6m -c utils/cython_nms.c -o build/temp.linux-x86_64-3.6/utils/cython_nms.o -Wno-cpp
utils/cython_nms.c: In function ‘__pyx_pf_5utils_10cython_nms_2soft_nms’:
utils/cython_nms.c:3242:34: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
       __pyx_t_11 = ((__pyx_v_pos < __pyx_v_N) != 0);
                                  ^
utils/cython_nms.c:3753:34: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
       __pyx_t_11 = ((__pyx_v_pos < __pyx_v_N) != 0);
                                  ^
gcc -pthread -shared -B /home/userhome/anaconda3/envs/pytorch.41/compiler_compat -L/home/userhome/anaconda3/envs/pytorch.41/lib -Wl,-rpath=/home/userhome/anaconda3/envs/pytorch.41/lib -Wl,--no-as-needed -Wl,--sysroot=/ build/temp.linux-x86_64-3.6/utils/cython_nms.o -o build/lib.linux-x86_64-3.6/utils/cython_nms.cpython-36m-x86_64-linux-gnu.so
copying build/lib.linux-x86_64-3.6/utils/cython_bbox.cpython-36m-x86_64-linux-gnu.so -> utils
copying build/lib.linux-x86_64-3.6/utils/cython_nms.cpython-36m-x86_64-linux-gnu.so -> utils
Compiling nms kernels by nvcc...
make.sh: 20: make.sh: nvcc: not found
Including CUDA code.
/home/userhome/maskrcnn-benchmark/pcl.pytorch/lib/model/nms
['/home/userhome/maskrcnn-benchmark/pcl.pytorch/lib/model/nms/src/nms_cuda_kernel.cu.o']
generating /tmp/tmpo07c1y84/_nms.c
setting the current directory to '/tmp/tmpo07c1y84'
running build_ext
building '_nms' extension
creating home
creating home/userhome
creating home/userhome/maskrcnn-benchmark
creating home/userhome/maskrcnn-benchmark/pcl.pytorch
creating home/userhome/maskrcnn-benchmark/pcl.pytorch/lib
creating home/userhome/maskrcnn-benchmark/pcl.pytorch/lib/model
creating home/userhome/maskrcnn-benchmark/pcl.pytorch/lib/model/nms
creating home/userhome/maskrcnn-benchmark/pcl.pytorch/lib/model/nms/src
gcc -pthread -B /home/userhome/anaconda3/envs/pytorch.41/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -DWITH_CUDA -I/home/userhome/anaconda3/envs/pytorch.41/lib/python3.6/site-packages/torch/utils/ffi/../../lib/include -I/home/userhome/anaconda3/envs/pytorch.41/lib/python3.6/site-packages/torch/utils/ffi/../../lib/include/TH -I/home/userhome/anaconda3/envs/pytorch.41/lib/python3.6/site-packages/torch/utils/ffi/../../lib/include/THC -I/usr/local/cuda/include -I/home/userhome/anaconda3/envs/pytorch.41/include/python3.6m -c _nms.c -o ./_nms.o -std=c99
gcc -pthread -B /home/userhome/anaconda3/envs/pytorch.41/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -DWITH_CUDA -I/home/userhome/anaconda3/envs/pytorch.41/lib/python3.6/site-packages/torch/utils/ffi/../../lib/include -I/home/userhome/anaconda3/envs/pytorch.41/lib/python3.6/site-packages/torch/utils/ffi/../../lib/include/TH -I/home/userhome/anaconda3/envs/pytorch.41/lib/python3.6/site-packages/torch/utils/ffi/../../lib/include/THC -I/usr/local/cuda/include -I/home/userhome/anaconda3/envs/pytorch.41/include/python3.6m -c /home/userhome/maskrcnn-benchmark/pcl.pytorch/lib/model/nms/src/nms_cuda.c -o ./home/userhome/maskrcnn-benchmark/pcl.pytorch/lib/model/nms/src/nms_cuda.o -std=c99
gcc -pthread -shared -B /home/userhome/anaconda3/envs/pytorch.41/compiler_compat -L/home/userhome/anaconda3/envs/pytorch.41/lib -Wl,-rpath=/home/userhome/anaconda3/envs/pytorch.41/lib -Wl,--no-as-needed -Wl,--sysroot=/ ./_nms.o ./home/userhome/maskrcnn-benchmark/pcl.pytorch/lib/model/nms/src/nms_cuda.o /home/userhome/maskrcnn-benchmark/pcl.pytorch/lib/model/nms/src/nms_cuda_kernel.cu.o -o ./_nms.so
gcc: error: /home/userhome/maskrcnn-benchmark/pcl.pytorch/lib/model/nms/src/nms_cuda_kernel.cu.o: No such file or directory
Traceback (most recent call last):
  File "/home/userhome/anaconda3/envs/pytorch.41/lib/python3.6/distutils/unixccompiler.py", line 197, in link
    self.spawn(linker + ld_args)
  File "/home/userhome/anaconda3/envs/pytorch.41/lib/python3.6/distutils/ccompiler.py", line 909, in spawn
    spawn(cmd, dry_run=self.dry_run)
  File "/home/userhome/anaconda3/envs/pytorch.41/lib/python3.6/distutils/spawn.py", line 36, in spawn
    _spawn_posix(cmd, search_path, dry_run=dry_run)
  File "/home/userhome/anaconda3/envs/pytorch.41/lib/python3.6/distutils/spawn.py", line 159, in _spawn_posix
    % (cmd, exit_status))
distutils.errors.DistutilsExecError: command 'gcc' failed with exit status 1

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/userhome/anaconda3/envs/pytorch.41/lib/python3.6/site-packages/cffi/ffiplatform.py", line 51, in _build
    dist.run_command('build_ext')
  File "/home/userhome/anaconda3/envs/pytorch.41/lib/python3.6/distutils/dist.py", line 974, in run_command
    cmd_obj.run()
  File "/home/userhome/anaconda3/envs/pytorch.41/lib/python3.6/distutils/command/build_ext.py", line 339, in run
    self.build_extensions()
  File "/home/userhome/anaconda3/envs/pytorch.41/lib/python3.6/distutils/command/build_ext.py", line 448, in build_extensions
    self._build_extensions_serial()
  File "/home/userhome/anaconda3/envs/pytorch.41/lib/python3.6/distutils/command/build_ext.py", line 473, in _build_extensions_serial
    self.build_extension(ext)
  File "/home/userhome/anaconda3/envs/pytorch.41/lib/python3.6/distutils/command/build_ext.py", line 558, in build_extension
    target_lang=language)
  File "/home/userhome/anaconda3/envs/pytorch.41/lib/python3.6/distutils/ccompiler.py", line 717, in link_shared_object
    extra_preargs, extra_postargs, build_temp, target_lang)
  File "/home/userhome/anaconda3/envs/pytorch.41/lib/python3.6/distutils/unixccompiler.py", line 199, in link
    raise LinkError(msg)
distutils.errors.LinkError: command 'gcc' failed with exit status 1

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "build.py", line 37, in <module>
    ffi.build()
  File "/home/userhome/anaconda3/envs/pytorch.41/lib/python3.6/site-packages/torch/utils/ffi/__init__.py", line 189, in build
    _build_extension(ffi, cffi_wrapper_name, target_dir, verbose)
  File "/home/userhome/anaconda3/envs/pytorch.41/lib/python3.6/site-packages/torch/utils/ffi/__init__.py", line 111, in _build_extension
    outfile = ffi.compile(tmpdir=tmpdir, verbose=verbose, target=libname)
  File "/home/userhome/anaconda3/envs/pytorch.41/lib/python3.6/site-packages/cffi/api.py", line 723, in compile
    compiler_verbose=verbose, debug=debug, **kwds)
  File "/home/userhome/anaconda3/envs/pytorch.41/lib/python3.6/site-packages/cffi/recompiler.py", line 1526, in recompile
    compiler_verbose, debug)
  File "/home/userhome/anaconda3/envs/pytorch.41/lib/python3.6/site-packages/cffi/ffiplatform.py", line 22, in compile
    outputfilename = _build(tmpdir, ext, compiler_verbose, debug)
  File "/home/userhome/anaconda3/envs/pytorch.41/lib/python3.6/site-packages/cffi/ffiplatform.py", line 58, in _build
    raise VerificationError('%s: %s' % (e.__class__.__name__, e))
cffi.VerificationError: LinkError: command 'gcc' failed with exit status 1
Compiling roi pooling kernels by nvcc...
make.sh: 30: make.sh: nvcc: not found
Including CUDA code.
/home/userhome/maskrcnn-benchmark/pcl.pytorch/lib/model/roi_pooling
generating /tmp/tmpcux0unur/_roi_pooling.c
setting the current directory to '/tmp/tmpcux0unur'
running build_ext
building '_roi_pooling' extension
creating home
creating home/userhome
creating home/userhome/maskrcnn-benchmark
creating home/userhome/maskrcnn-benchmark/pcl.pytorch
creating home/userhome/maskrcnn-benchmark/pcl.pytorch/lib
creating home/userhome/maskrcnn-benchmark/pcl.pytorch/lib/model
creating home/userhome/maskrcnn-benchmark/pcl.pytorch/lib/model/roi_pooling
creating home/userhome/maskrcnn-benchmark/pcl.pytorch/lib/model/roi_pooling/src
gcc -pthread -B /home/userhome/anaconda3/envs/pytorch.41/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -DWITH_CUDA -I/home/userhome/anaconda3/envs/pytorch.41/lib/python3.6/site-packages/torch/utils/ffi/../../lib/include -I/home/userhome/anaconda3/envs/pytorch.41/lib/python3.6/site-packages/torch/utils/ffi/../../lib/include/TH -I/home/userhome/anaconda3/envs/pytorch.41/lib/python3.6/site-packages/torch/utils/ffi/../../lib/include/THC -I/usr/local/cuda/include -I/home/userhome/anaconda3/envs/pytorch.41/include/python3.6m -c _roi_pooling.c -o ./_roi_pooling.o -std=c99
gcc -pthread -B /home/userhome/anaconda3/envs/pytorch.41/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -DWITH_CUDA -I/home/userhome/anaconda3/envs/pytorch.41/lib/python3.6/site-packages/torch/utils/ffi/../../lib/include -I/home/userhome/anaconda3/envs/pytorch.41/lib/python3.6/site-packages/torch/utils/ffi/../../lib/include/TH -I/home/userhome/anaconda3/envs/pytorch.41/lib/python3.6/site-packages/torch/utils/ffi/../../lib/include/THC -I/usr/local/cuda/include -I/home/userhome/anaconda3/envs/pytorch.41/include/python3.6m -c /home/userhome/maskrcnn-benchmark/pcl.pytorch/lib/model/roi_pooling/src/roi_pooling.c -o ./home/userhome/maskrcnn-benchmark/pcl.pytorch/lib/model/roi_pooling/src/roi_pooling.o -std=c99
gcc -pthread -B /home/userhome/anaconda3/envs/pytorch.41/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -DWITH_CUDA -I/home/userhome/anaconda3/envs/pytorch.41/lib/python3.6/site-packages/torch/utils/ffi/../../lib/include -I/home/userhome/anaconda3/envs/pytorch.41/lib/python3.6/site-packages/torch/utils/ffi/../../lib/include/TH -I/home/userhome/anaconda3/envs/pytorch.41/lib/python3.6/site-packages/torch/utils/ffi/../../lib/include/THC -I/usr/local/cuda/include -I/home/userhome/anaconda3/envs/pytorch.41/include/python3.6m -c /home/userhome/maskrcnn-benchmark/pcl.pytorch/lib/model/roi_pooling/src/roi_pooling_cuda.c -o ./home/userhome/maskrcnn-benchmark/pcl.pytorch/lib/model/roi_pooling/src/roi_pooling_cuda.o -std=c99
gcc -pthread -shared -B /home/userhome/anaconda3/envs/pytorch.41/compiler_compat -L/home/userhome/anaconda3/envs/pytorch.41/lib -Wl,-rpath=/home/userhome/anaconda3/envs/pytorch.41/lib -Wl,--no-as-needed -Wl,--sysroot=/ ./_roi_pooling.o ./home/userhome/maskrcnn-benchmark/pcl.pytorch/lib/model/roi_pooling/src/roi_pooling.o ./home/userhome/maskrcnn-benchmark/pcl.pytorch/lib/model/roi_pooling/src/roi_pooling_cuda.o /home/userhome/maskrcnn-benchmark/pcl.pytorch/lib/model/roi_pooling/src/roi_pooling.cu.o -o ./_roi_pooling.so
gcc: error: /home/userhome/maskrcnn-benchmark/pcl.pytorch/lib/model/roi_pooling/src/roi_pooling.cu.o: No such file or directory
Traceback (most recent call last):
  File "/home/userhome/anaconda3/envs/pytorch.41/lib/python3.6/distutils/unixccompiler.py", line 197, in link
    self.spawn(linker + ld_args)
  File "/home/userhome/anaconda3/envs/pytorch.41/lib/python3.6/distutils/ccompiler.py", line 909, in spawn
    spawn(cmd, dry_run=self.dry_run)
  File "/home/userhome/anaconda3/envs/pytorch.41/lib/python3.6/distutils/spawn.py", line 36, in spawn
    _spawn_posix(cmd, search_path, dry_run=dry_run)
  File "/home/userhome/anaconda3/envs/pytorch.41/lib/python3.6/distutils/spawn.py", line 159, in _spawn_posix
    % (cmd, exit_status))
distutils.errors.DistutilsExecError: command 'gcc' failed with exit status 1

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/userhome/anaconda3/envs/pytorch.41/lib/python3.6/site-packages/cffi/ffiplatform.py", line 51, in _build
    dist.run_command('build_ext')
  File "/home/userhome/anaconda3/envs/pytorch.41/lib/python3.6/distutils/dist.py", line 974, in run_command
    cmd_obj.run()
  File "/home/userhome/anaconda3/envs/pytorch.41/lib/python3.6/distutils/command/build_ext.py", line 339, in run
    self.build_extensions()
  File "/home/userhome/anaconda3/envs/pytorch.41/lib/python3.6/distutils/command/build_ext.py", line 448, in build_extensions
    self._build_extensions_serial()
  File "/home/userhome/anaconda3/envs/pytorch.41/lib/python3.6/distutils/command/build_ext.py", line 473, in _build_extensions_serial
    self.build_extension(ext)
  File "/home/userhome/anaconda3/envs/pytorch.41/lib/python3.6/distutils/command/build_ext.py", line 558, in build_extension
    target_lang=language)
  File "/home/userhome/anaconda3/envs/pytorch.41/lib/python3.6/distutils/ccompiler.py", line 717, in link_shared_object
    extra_preargs, extra_postargs, build_temp, target_lang)
  File "/home/userhome/anaconda3/envs/pytorch.41/lib/python3.6/distutils/unixccompiler.py", line 199, in link
    raise LinkError(msg)
distutils.errors.LinkError: command 'gcc' failed with exit status 1

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "build.py", line 35, in <module>
    ffi.build()
  File "/home/userhome/anaconda3/envs/pytorch.41/lib/python3.6/site-packages/torch/utils/ffi/__init__.py", line 189, in build
    _build_extension(ffi, cffi_wrapper_name, target_dir, verbose)
  File "/home/userhome/anaconda3/envs/pytorch.41/lib/python3.6/site-packages/torch/utils/ffi/__init__.py", line 111, in _build_extension
    outfile = ffi.compile(tmpdir=tmpdir, verbose=verbose, target=libname)
  File "/home/userhome/anaconda3/envs/pytorch.41/lib/python3.6/site-packages/cffi/api.py", line 723, in compile
    compiler_verbose=verbose, debug=debug, **kwds)
  File "/home/userhome/anaconda3/envs/pytorch.41/lib/python3.6/site-packages/cffi/recompiler.py", line 1526, in recompile
    compiler_verbose, debug)
  File "/home/userhome/anaconda3/envs/pytorch.41/lib/python3.6/site-packages/cffi/ffiplatform.py", line 22, in compile
    outputfilename = _build(tmpdir, ext, compiler_verbose, debug)
  File "/home/userhome/anaconda3/envs/pytorch.41/lib/python3.6/site-packages/cffi/ffiplatform.py", line 58, in _build
    raise VerificationError('%s: %s' % (e.__class__.__name__, e))
cffi.VerificationError: LinkError: command 'gcc' failed with exit status 1
Compiling roi crop kernels by nvcc...
make.sh: 48: make.sh: nvcc: not found
Including CUDA code.
/home/userhome/maskrcnn-benchmark/pcl.pytorch/lib/model/roi_crop
generating /tmp/tmprgsxc8fh/_roi_crop.c
setting the current directory to '/tmp/tmprgsxc8fh'
running build_ext
building '_roi_crop' extension
creating home
creating home/userhome
creating home/userhome/maskrcnn-benchmark
creating home/userhome/maskrcnn-benchmark/pcl.pytorch
creating home/userhome/maskrcnn-benchmark/pcl.pytorch/lib
creating home/userhome/maskrcnn-benchmark/pcl.pytorch/lib/model
creating home/userhome/maskrcnn-benchmark/pcl.pytorch/lib/model/roi_crop
creating home/userhome/maskrcnn-benchmark/pcl.pytorch/lib/model/roi_crop/src
gcc -pthread -B /home/userhome/anaconda3/envs/pytorch.41/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -DWITH_CUDA -I/home/userhome/anaconda3/envs/pytorch.41/lib/python3.6/site-packages/torch/utils/ffi/../../lib/include -I/home/userhome/anaconda3/envs/pytorch.41/lib/python3.6/site-packages/torch/utils/ffi/../../lib/include/TH -I/home/userhome/anaconda3/envs/pytorch.41/lib/python3.6/site-packages/torch/utils/ffi/../../lib/include/THC -I/usr/local/cuda/include -I/home/userhome/anaconda3/envs/pytorch.41/include/python3.6m -c _roi_crop.c -o ./_roi_crop.o -std=c99
gcc -pthread -B /home/userhome/anaconda3/envs/pytorch.41/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -DWITH_CUDA -I/home/userhome/anaconda3/envs/pytorch.41/lib/python3.6/site-packages/torch/utils/ffi/../../lib/include -I/home/userhome/anaconda3/envs/pytorch.41/lib/python3.6/site-packages/torch/utils/ffi/../../lib/include/TH -I/home/userhome/anaconda3/envs/pytorch.41/lib/python3.6/site-packages/torch/utils/ffi/../../lib/include/THC -I/usr/local/cuda/include -I/home/userhome/anaconda3/envs/pytorch.41/include/python3.6m -c /home/userhome/maskrcnn-benchmark/pcl.pytorch/lib/model/roi_crop/src/roi_crop.c -o ./home/userhome/maskrcnn-benchmark/pcl.pytorch/lib/model/roi_crop/src/roi_crop.o -std=c99
/home/userhome/maskrcnn-benchmark/pcl.pytorch/lib/model/roi_crop/src/roi_crop.c: In function ‘BilinearSamplerBHWD_updateGradInput’:
/home/userhome/maskrcnn-benchmark/pcl.pytorch/lib/model/roi_crop/src/roi_crop.c:190:14: warning: unused variable ‘inBottomRight’ [-Wunused-variable]
         real inBottomRight=0;
              ^
/home/userhome/maskrcnn-benchmark/pcl.pytorch/lib/model/roi_crop/src/roi_crop.c:189:14: warning: unused variable ‘inBottomLeft’ [-Wunused-variable]
         real inBottomLeft=0;
              ^
/home/userhome/maskrcnn-benchmark/pcl.pytorch/lib/model/roi_crop/src/roi_crop.c:188:14: warning: unused variable ‘inTopRight’ [-Wunused-variable]
         real inTopRight=0;
              ^
/home/userhome/maskrcnn-benchmark/pcl.pytorch/lib/model/roi_crop/src/roi_crop.c:187:14: warning: unused variable ‘inTopLeft’ [-Wunused-variable]
         real inTopLeft=0;
              ^
/home/userhome/maskrcnn-benchmark/pcl.pytorch/lib/model/roi_crop/src/roi_crop.c:186:14: warning: unused variable ‘v’ [-Wunused-variable]
         real v=0;
              ^
/home/userhome/maskrcnn-benchmark/pcl.pytorch/lib/model/roi_crop/src/roi_crop.c: In function ‘BilinearSamplerBCHW_updateGradInput’:
/home/userhome/maskrcnn-benchmark/pcl.pytorch/lib/model/roi_crop/src/roi_crop.c:440:14: warning: unused variable ‘inBottomRight’ [-Wunused-variable]
         real inBottomRight=0;
              ^
/home/userhome/maskrcnn-benchmark/pcl.pytorch/lib/model/roi_crop/src/roi_crop.c:439:14: warning: unused variable ‘inBottomLeft’ [-Wunused-variable]
         real inBottomLeft=0;
              ^
/home/userhome/maskrcnn-benchmark/pcl.pytorch/lib/model/roi_crop/src/roi_crop.c:438:14: warning: unused variable ‘inTopRight’ [-Wunused-variable]
         real inTopRight=0;
              ^
/home/userhome/maskrcnn-benchmark/pcl.pytorch/lib/model/roi_crop/src/roi_crop.c:437:14: warning: unused variable ‘inTopLeft’ [-Wunused-variable]
         real inTopLeft=0;
              ^
/home/userhome/maskrcnn-benchmark/pcl.pytorch/lib/model/roi_crop/src/roi_crop.c:436:14: warning: unused variable ‘v’ [-Wunused-variable]
         real v=0;
              ^
gcc -pthread -B /home/userhome/anaconda3/envs/pytorch.41/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -DWITH_CUDA -I/home/userhome/anaconda3/envs/pytorch.41/lib/python3.6/site-packages/torch/utils/ffi/../../lib/include -I/home/userhome/anaconda3/envs/pytorch.41/lib/python3.6/site-packages/torch/utils/ffi/../../lib/include/TH -I/home/userhome/anaconda3/envs/pytorch.41/lib/python3.6/site-packages/torch/utils/ffi/../../lib/include/THC -I/usr/local/cuda/include -I/home/userhome/anaconda3/envs/pytorch.41/include/python3.6m -c /home/userhome/maskrcnn-benchmark/pcl.pytorch/lib/model/roi_crop/src/roi_crop_cuda.c -o ./home/userhome/maskrcnn-benchmark/pcl.pytorch/lib/model/roi_crop/src/roi_crop_cuda.o -std=c99
gcc -pthread -shared -B /home/userhome/anaconda3/envs/pytorch.41/compiler_compat -L/home/userhome/anaconda3/envs/pytorch.41/lib -Wl,-rpath=/home/userhome/anaconda3/envs/pytorch.41/lib -Wl,--no-as-needed -Wl,--sysroot=/ ./_roi_crop.o ./home/userhome/maskrcnn-benchmark/pcl.pytorch/lib/model/roi_crop/src/roi_crop.o ./home/userhome/maskrcnn-benchmark/pcl.pytorch/lib/model/roi_crop/src/roi_crop_cuda.o /home/userhome/maskrcnn-benchmark/pcl.pytorch/lib/model/roi_crop/src/roi_crop_cuda_kernel.cu.o -o ./_roi_crop.so
gcc: error: /home/userhome/maskrcnn-benchmark/pcl.pytorch/lib/model/roi_crop/src/roi_crop_cuda_kernel.cu.o: No such fileor directory
Traceback (most recent call last):
  File "/home/userhome/anaconda3/envs/pytorch.41/lib/python3.6/distutils/unixccompiler.py", line 197, in link
    self.spawn(linker + ld_args)
  File "/home/userhome/anaconda3/envs/pytorch.41/lib/python3.6/distutils/ccompiler.py", line 909, in spawn
    spawn(cmd, dry_run=self.dry_run)
  File "/home/userhome/anaconda3/envs/pytorch.41/lib/python3.6/distutils/spawn.py", line 36, in spawn
    _spawn_posix(cmd, search_path, dry_run=dry_run)
  File "/home/userhome/anaconda3/envs/pytorch.41/lib/python3.6/distutils/spawn.py", line 159, in _spawn_posix
    % (cmd, exit_status))
distutils.errors.DistutilsExecError: command 'gcc' failed with exit status 1

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/userhome/anaconda3/envs/pytorch.41/lib/python3.6/site-packages/cffi/ffiplatform.py", line 51, in _build
    dist.run_command('build_ext')
  File "/home/userhome/anaconda3/envs/pytorch.41/lib/python3.6/distutils/dist.py", line 974, in run_command
    cmd_obj.run()
  File "/home/userhome/anaconda3/envs/pytorch.41/lib/python3.6/distutils/command/build_ext.py", line 339, in run
    self.build_extensions()
  File "/home/userhome/anaconda3/envs/pytorch.41/lib/python3.6/distutils/command/build_ext.py", line 448, in build_extensions
    self._build_extensions_serial()
  File "/home/userhome/anaconda3/envs/pytorch.41/lib/python3.6/distutils/command/build_ext.py", line 473, in _build_extensions_serial
    self.build_extension(ext)
  File "/home/userhome/anaconda3/envs/pytorch.41/lib/python3.6/distutils/command/build_ext.py", line 558, in build_extension
    target_lang=language)
  File "/home/userhome/anaconda3/envs/pytorch.41/lib/python3.6/distutils/ccompiler.py", line 717, in link_shared_object
    extra_preargs, extra_postargs, build_temp, target_lang)
  File "/home/userhome/anaconda3/envs/pytorch.41/lib/python3.6/distutils/unixccompiler.py", line 199, in link
    raise LinkError(msg)
distutils.errors.LinkError: command 'gcc' failed with exit status 1

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "build.py", line 36, in <module>
    ffi.build()
  File "/home/userhome/anaconda3/envs/pytorch.41/lib/python3.6/site-packages/torch/utils/ffi/__init__.py", line 189, in build
    _build_extension(ffi, cffi_wrapper_name, target_dir, verbose)
  File "/home/userhome/anaconda3/envs/pytorch.41/lib/python3.6/site-packages/torch/utils/ffi/__init__.py", line 111, in _build_extension
    outfile = ffi.compile(tmpdir=tmpdir, verbose=verbose, target=libname)
  File "/home/userhome/anaconda3/envs/pytorch.41/lib/python3.6/site-packages/cffi/api.py", line 723, in compile
    compiler_verbose=verbose, debug=debug, **kwds)
  File "/home/userhome/anaconda3/envs/pytorch.41/lib/python3.6/site-packages/cffi/recompiler.py", line 1526, in recompile
    compiler_verbose, debug)
  File "/home/userhome/anaconda3/envs/pytorch.41/lib/python3.6/site-packages/cffi/ffiplatform.py", line 22, in compile
    outputfilename = _build(tmpdir, ext, compiler_verbose, debug)
  File "/home/userhome/anaconda3/envs/pytorch.41/lib/python3.6/site-packages/cffi/ffiplatform.py", line 58, in _build
    raise VerificationError('%s: %s' % (e.__class__.__name__, e))
cffi.VerificationError: LinkError: command 'gcc' failed with exit status 1
Compiling roi align kernels by nvcc...
make.sh: 57: make.sh: nvcc: not found
Including CUDA code.
/home/userhome/maskrcnn-benchmark/pcl.pytorch/lib/modeling/roi_xfrom/roi_align
generating /tmp/tmpku7n5dt6/_roi_align.c
setting the current directory to '/tmp/tmpku7n5dt6'
running build_ext
building '_roi_align' extension
creating home
creating home/userhome
creating home/userhome/maskrcnn-benchmark
creating home/userhome/maskrcnn-benchmark/pcl.pytorch
creating home/userhome/maskrcnn-benchmark/pcl.pytorch/lib
creating home/userhome/maskrcnn-benchmark/pcl.pytorch/lib/modeling
creating home/userhome/maskrcnn-benchmark/pcl.pytorch/lib/modeling/roi_xfrom
creating home/userhome/maskrcnn-benchmark/pcl.pytorch/lib/modeling/roi_xfrom/roi_align
creating home/userhome/maskrcnn-benchmark/pcl.pytorch/lib/modeling/roi_xfrom/roi_align/src
gcc -pthread -B /home/userhome/anaconda3/envs/pytorch.41/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -DWITH_CUDA -I/home/userhome/anaconda3/envs/pytorch.41/lib/python3.6/site-packages/torch/utils/ffi/../../lib/include -I/home/userhome/anaconda3/envs/pytorch.41/lib/python3.6/site-packages/torch/utils/ffi/../../lib/include/TH -I/home/userhome/anaconda3/envs/pytorch.41/lib/python3.6/site-packages/torch/utils/ffi/../../lib/include/THC -I/usr/local/cuda/include -I/home/userhome/anaconda3/envs/pytorch.41/include/python3.6m -c _roi_align.c -o ./_roi_align.o -std=c99
gcc -pthread -B /home/userhome/anaconda3/envs/pytorch.41/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -DWITH_CUDA -I/home/userhome/anaconda3/envs/pytorch.41/lib/python3.6/site-packages/torch/utils/ffi/../../lib/include -I/home/userhome/anaconda3/envs/pytorch.41/lib/python3.6/site-packages/torch/utils/ffi/../../lib/include/TH -I/home/userhome/anaconda3/envs/pytorch.41/lib/python3.6/site-packages/torch/utils/ffi/../../lib/include/THC -I/usr/local/cuda/include -I/home/userhome/anaconda3/envs/pytorch.41/include/python3.6m -c /home/userhome/maskrcnn-benchmark/pcl.pytorch/lib/modeling/roi_xfrom/roi_align/src/roi_align_cuda.c -o ./home/userhome/maskrcnn-benchmark/pcl.pytorch/lib/modeling/roi_xfrom/roi_align/src/roi_align_cuda.o -std=c99
gcc -pthread -shared -B /home/userhome/anaconda3/envs/pytorch.41/compiler_compat -L/home/userhome/anaconda3/envs/pytorch.41/lib -Wl,-rpath=/home/userhome/anaconda3/envs/pytorch.41/lib -Wl,--no-as-needed -Wl,--sysroot=/ ./_roi_align.o ./home/userhome/maskrcnn-benchmark/pcl.pytorch/lib/modeling/roi_xfrom/roi_align/src/roi_align_cuda.o /home/userhome/maskrcnn-benchmark/pcl.pytorch/lib/modeling/roi_xfrom/roi_align/src/roi_align_kernel.cu.o -o ./_roi_align.so
gcc: error: /home/userhome/maskrcnn-benchmark/pcl.pytorch/lib/modeling/roi_xfrom/roi_align/src/roi_align_kernel.cu.o: Nosuch file or directory
Traceback (most recent call last):
  File "/home/userhome/anaconda3/envs/pytorch.41/lib/python3.6/distutils/unixccompiler.py", line 197, in link
    self.spawn(linker + ld_args)
  File "/home/userhome/anaconda3/envs/pytorch.41/lib/python3.6/distutils/ccompiler.py", line 909, in spawn
    spawn(cmd, dry_run=self.dry_run)
  File "/home/userhome/anaconda3/envs/pytorch.41/lib/python3.6/distutils/spawn.py", line 36, in spawn
    _spawn_posix(cmd, search_path, dry_run=dry_run)
  File "/home/userhome/anaconda3/envs/pytorch.41/lib/python3.6/distutils/spawn.py", line 159, in _spawn_posix
    % (cmd, exit_status))
distutils.errors.DistutilsExecError: command 'gcc' failed with exit status 1

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/userhome/anaconda3/envs/pytorch.41/lib/python3.6/site-packages/cffi/ffiplatform.py", line 51, in _build
    dist.run_command('build_ext')
  File "/home/userhome/anaconda3/envs/pytorch.41/lib/python3.6/distutils/dist.py", line 974, in run_command
    cmd_obj.run()
  File "/home/userhome/anaconda3/envs/pytorch.41/lib/python3.6/distutils/command/build_ext.py", line 339, in run
    self.build_extensions()
  File "/home/userhome/anaconda3/envs/pytorch.41/lib/python3.6/distutils/command/build_ext.py", line 448, in build_extensions
    self._build_extensions_serial()
  File "/home/userhome/anaconda3/envs/pytorch.41/lib/python3.6/distutils/command/build_ext.py", line 473, in _build_extensions_serial
    self.build_extension(ext)
  File "/home/userhome/anaconda3/envs/pytorch.41/lib/python3.6/distutils/command/build_ext.py", line 558, in build_extension
    target_lang=language)
  File "/home/userhome/anaconda3/envs/pytorch.41/lib/python3.6/distutils/ccompiler.py", line 717, in link_shared_object
    extra_preargs, extra_postargs, build_temp, target_lang)
  File "/home/userhome/anaconda3/envs/pytorch.41/lib/python3.6/distutils/unixccompiler.py", line 199, in link
    raise LinkError(msg)
distutils.errors.LinkError: command 'gcc' failed with exit status 1

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "build.py", line 36, in <module>
    ffi.build()
  File "/home/userhome/anaconda3/envs/pytorch.41/lib/python3.6/site-packages/torch/utils/ffi/__init__.py", line 189, in build
    _build_extension(ffi, cffi_wrapper_name, target_dir, verbose)
  File "/home/userhome/anaconda3/envs/pytorch.41/lib/python3.6/site-packages/torch/utils/ffi/__init__.py", line 111, in _build_extension
    outfile = ffi.compile(tmpdir=tmpdir, verbose=verbose, target=libname)
  File "/home/userhome/anaconda3/envs/pytorch.41/lib/python3.6/site-packages/cffi/api.py", line 723, in compile
    compiler_verbose=verbose, debug=debug, **kwds)
  File "/home/userhome/anaconda3/envs/pytorch.41/lib/python3.6/site-packages/cffi/recompiler.py", line 1526, in recompile
    compiler_verbose, debug)
  File "/home/userhome/anaconda3/envs/pytorch.41/lib/python3.6/site-packages/cffi/ffiplatform.py", line 22, in compile
    outputfilename = _build(tmpdir, ext, compiler_verbose, debug)
  File "/home/userhome/anaconda3/envs/pytorch.41/lib/python3.6/site-packages/cffi/ffiplatform.py", line 58, in _build
    raise VerificationError('%s: %s' % (e.__class__.__name__, e))
cffi.VerificationError: LinkError: command 'gcc' failed with exit status 1
Compiling pcl losses kernels by nvcc...
make.sh: 66: make.sh: nvcc: not found
/home/userhome/maskrcnn-benchmark/pcl.pytorch/lib/model/pcl_losses
Including CUDA code.
generating /tmp/tmpamy4nz7k/_pcl_losses.c
setting the current directory to '/tmp/tmpamy4nz7k'
running build_ext
building '_pcl_losses' extension
creating home
creating home/userhome
creating home/userhome/maskrcnn-benchmark
creating home/userhome/maskrcnn-benchmark/pcl.pytorch
creating home/userhome/maskrcnn-benchmark/pcl.pytorch/lib
creating home/userhome/maskrcnn-benchmark/pcl.pytorch/lib/model
creating home/userhome/maskrcnn-benchmark/pcl.pytorch/lib/model/pcl_losses
creating home/userhome/maskrcnn-benchmark/pcl.pytorch/lib/model/pcl_losses/src
gcc -pthread -B /home/userhome/anaconda3/envs/pytorch.41/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -DWITH_CUDA -I/home/userhome/anaconda3/envs/pytorch.41/lib/python3.6/site-packages/torch/utils/ffi/../../lib/include -I/home/userhome/anaconda3/envs/pytorch.41/lib/python3.6/site-packages/torch/utils/ffi/../../lib/include/TH -I/home/userhome/anaconda3/envs/pytorch.41/lib/python3.6/site-packages/torch/utils/ffi/../../lib/include/THC -I/usr/local/cuda/include -I/home/userhome/anaconda3/envs/pytorch.41/include/python3.6m -c _pcl_losses.c -o ./_pcl_losses.o -std=c99
gcc -pthread -B /home/userhome/anaconda3/envs/pytorch.41/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -DWITH_CUDA -I/home/userhome/anaconda3/envs/pytorch.41/lib/python3.6/site-packages/torch/utils/ffi/../../lib/include -I/home/userhome/anaconda3/envs/pytorch.41/lib/python3.6/site-packages/torch/utils/ffi/../../lib/include/TH -I/home/userhome/anaconda3/envs/pytorch.41/lib/python3.6/site-packages/torch/utils/ffi/../../lib/include/THC -I/usr/local/cuda/include -I/home/userhome/anaconda3/envs/pytorch.41/include/python3.6m -c /home/userhome/maskrcnn-benchmark/pcl.pytorch/lib/model/pcl_losses/src/pcl_losses.c -o ./home/userhome/maskrcnn-benchmark/pcl.pytorch/lib/model/pcl_losses/src/pcl_losses.o -std=c99
gcc -pthread -B /home/userhome/anaconda3/envs/pytorch.41/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -DWITH_CUDA -I/home/userhome/anaconda3/envs/pytorch.41/lib/python3.6/site-packages/torch/utils/ffi/../../lib/include -I/home/userhome/anaconda3/envs/pytorch.41/lib/python3.6/site-packages/torch/utils/ffi/../../lib/include/TH -I/home/userhome/anaconda3/envs/pytorch.41/lib/python3.6/site-packages/torch/utils/ffi/../../lib/include/THC -I/usr/local/cuda/include -I/home/userhome/anaconda3/envs/pytorch.41/include/python3.6m -c /home/userhome/maskrcnn-benchmark/pcl.pytorch/lib/model/pcl_losses/src/pcl_losses_cuda.c -o ./home/userhome/maskrcnn-benchmark/pcl.pytorch/lib/model/pcl_losses/src/pcl_losses_cuda.o -std=c99
gcc -pthread -shared -B /home/userhome/anaconda3/envs/pytorch.41/compiler_compat -L/home/userhome/anaconda3/envs/pytorch.41/lib -Wl,-rpath=/home/userhome/anaconda3/envs/pytorch.41/lib -Wl,--no-as-needed -Wl,--sysroot=/ ./_pcl_losses.o ./home/userhome/maskrcnn-benchmark/pcl.pytorch/lib/model/pcl_losses/src/pcl_losses.o ./home/userhome/maskrcnn-benchmark/pcl.pytorch/lib/model/pcl_losses/src/pcl_losses_cuda.o /home/userhome/maskrcnn-benchmark/pcl.pytorch/lib/model/pcl_losses/src/pcl_losses_kernel.cu.o -o ./_pcl_losses.so
gcc: error: /home/userhome/maskrcnn-benchmark/pcl.pytorch/lib/model/pcl_losses/src/pcl_losses_kernel.cu.o: No such file or directory
Traceback (most recent call last):
  File "/home/userhome/anaconda3/envs/pytorch.41/lib/python3.6/distutils/unixccompiler.py", line 197, in link
    self.spawn(linker + ld_args)
  File "/home/userhome/anaconda3/envs/pytorch.41/lib/python3.6/distutils/ccompiler.py", line 909, in spawn
    spawn(cmd, dry_run=self.dry_run)
  File "/home/userhome/anaconda3/envs/pytorch.41/lib/python3.6/distutils/spawn.py", line 36, in spawn
    _spawn_posix(cmd, search_path, dry_run=dry_run)
  File "/home/userhome/anaconda3/envs/pytorch.41/lib/python3.6/distutils/spawn.py", line 159, in _spawn_posix
    % (cmd, exit_status))
distutils.errors.DistutilsExecError: command 'gcc' failed with exit status 1

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/userhome/anaconda3/envs/pytorch.41/lib/python3.6/site-packages/cffi/ffiplatform.py", line 51, in _build
    dist.run_command('build_ext')
  File "/home/userhome/anaconda3/envs/pytorch.41/lib/python3.6/distutils/dist.py", line 974, in run_command
    cmd_obj.run()
  File "/home/userhome/anaconda3/envs/pytorch.41/lib/python3.6/distutils/command/build_ext.py", line 339, in run
    self.build_extensions()
  File "/home/userhome/anaconda3/envs/pytorch.41/lib/python3.6/distutils/command/build_ext.py", line 448, in build_extensions
    self._build_extensions_serial()
  File "/home/userhome/anaconda3/envs/pytorch.41/lib/python3.6/distutils/command/build_ext.py", line 473, in _build_extensions_serial
    self.build_extension(ext)
  File "/home/userhome/anaconda3/envs/pytorch.41/lib/python3.6/distutils/command/build_ext.py", line 558, in build_extension
    target_lang=language)
  File "/home/userhome/anaconda3/envs/pytorch.41/lib/python3.6/distutils/ccompiler.py", line 717, in link_shared_object
    extra_preargs, extra_postargs, build_temp, target_lang)
  File "/home/userhome/anaconda3/envs/pytorch.41/lib/python3.6/distutils/unixccompiler.py", line 199, in link
    raise LinkError(msg)
distutils.errors.LinkError: command 'gcc' failed with exit status 1

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "build.py", line 36, in <module>
    ffi.build()
  File "/home/userhome/anaconda3/envs/pytorch.41/lib/python3.6/site-packages/torch/utils/ffi/__init__.py", line 189, in build
    _build_extension(ffi, cffi_wrapper_name, target_dir, verbose)
  File "/home/userhome/anaconda3/envs/pytorch.41/lib/python3.6/site-packages/torch/utils/ffi/__init__.py", line 111, in _build_extension
    outfile = ffi.compile(tmpdir=tmpdir, verbose=verbose, target=libname)
  File "/home/userhome/anaconda3/envs/pytorch.41/lib/python3.6/site-packages/cffi/api.py", line 723, in compile
    compiler_verbose=verbose, debug=debug, **kwds)
  File "/home/userhome/anaconda3/envs/pytorch.41/lib/python3.6/site-packages/cffi/recompiler.py", line 1526, in recompile
    compiler_verbose, debug)
  File "/home/userhome/anaconda3/envs/pytorch.41/lib/python3.6/site-packages/cffi/ffiplatform.py", line 22, in compile
    outputfilename = _build(tmpdir, ext, compiler_verbose, debug)
  File "/home/userhome/anaconda3/envs/pytorch.41/lib/python3.6/site-packages/cffi/ffiplatform.py", line 58, in _build
    raise VerificationError('%s: %s' % (e.__class__.__name__, e))
cffi.VerificationError: LinkError: command 'gcc' failed with exit status 1

ImageNet DET Dataset

Hello,

How can I reproduce ImageNet DET dataset results (19.6 mAP)? Will you publish code & model for this dataset?

Thanks.

cudaCheckError() failed : no kernel image is available for execution on the device

Hi,

I am trying to run the code following the instructions. However, I get a cuda check error. Editing the make.sh won't help either.
....
INFO train_net_step.py: 230: 10022 roidb entries
INFO train_net_step.py: 231: Takes 2.30 sec(s) to construct roidb
INFO train_net_step.py: 367: Training starts !
INFO net.py: 52: Changing learning rate 0.000000 -> 0.000167
cudaCheckError() failed : no kernel image is available for execution on the device
...

I installed pytorch with conda and have a TitanV.

Thanks in advance

Bounding boxes in COCO style JSON

In the function _add_gt_annotations in json_dataset.py the code implies that bounding boxes are needed in the COCO style JSON annotations file (i.e. obj['bbox']).

I am trying to train this model on my own data, but since the purpose is weakly supervised learning, I have image level labels, but no bounding boxes other than those generated in selective search. How do I proceed, or am I completely missing the point here?

Many thanks in advance.

The missing file"pcl.pytorch/data/VOC2007/annotations/voc_2007_trainval.json"

Hello, Thanks for your excellent work. When i used the code , i met the following error. Could you help me deal with it? Thanks very much!
Traceback (most recent call last):
File "tools/train_net_step.py", line 443, in
main()
File "tools/train_net_step.py", line 227, in main
cfg.TRAIN.DATASETS, cfg.TRAIN.PROPOSAL_FILES)
File "/data1/zwy/pcl.pytorch/lib/datasets/roidb.py", line 59, in combined_roidb_for_training
roidbs = [get_roidb(*args) for args in zip(dataset_names, proposal_files)]
File "/data1/zwy/pcl.pytorch/lib/datasets/roidb.py", line 59, in
roidbs = [get_roidb(*args) for args in zip(dataset_names, proposal_files)]
File "/data1/zwy/pcl.pytorch/lib/datasets/roidb.py", line 40, in get_roidb
ds = JsonDataset(dataset_name)
File "/data1/zwy/pcl.pytorch/lib/datasets/json_dataset.py", line 62, in init
'Annotation file '{}' not found'.format(DATASETS[name][ANN_FN])
AssertionError: Annotation file '/data1/zwy/pcl.pytorch/data/VOC2007/annotations/voc_2007_trainval.json' not found

Inconsistency with MIL loss function

In the paper (and in the Caffe implementation I think), the MIL loss function is standard binary cross entropy, summed across classes, as in Bilen et. al.

In this implementation, you've done the mean across classes, rather than the sum. Could you explain this deviation from the original implementation?

How to get the image index?

Hi,

I'm sorry to bother you about my question.
When I used your pcl.pytorch code, in the 405 line of train_net_step.py, how did I get the index of the "input_data" just like"1-10022"?

Thank you very much!

Adaptive learning rate and number of iterations

Hi, thanks for the great repo!

I tried to run the training code with both the vgg16_voc2007 and the vgg16_voc2007_more configurations. I got 51.7 mAP with the former and 50.3 mAP with the latter, which are different from the reported results in https://github.com/ppengtang/pcl.pytorch/blob/master/README.md so I am trying to figure out the causes.

In tools/train_net_step.py, you change the learning rate at line 195:
cfg.SOLVER.BASE_LR *= args.batch_size / original_batch_size.
If I use args.batch_size=1as in the default configuration, then the base learning rate stays unchanged when I change args.iter_size. Since the gradients are sum-accumulated in 'inner' iterations (lines 407-421), does using large args.iter_size make gradients too big and non-adaptive? Should the line 195 be
cfg.SOLVER.BASE_LR /= effective_batch_size / original_batch_size?

Also, in lines 200-204, you change the number of iterations. I understand that it is to keep the average number of times an image is seen unchanged during training. But this changes the number of times weights are updated. Is this problematic?

About OICR and PCL

In /lib/modeling/model_builder.py ,lines 91 and 145-150,useOICRLosses() and OICR() ,does this represent the use of OICR rather than PCL optimization methods.Thanks

Can not use workers. Exception in thread Thread-1.

Hi All,

I am struggling to set up a number of workers more than 0. It produced me errors as below

Exception in thread Thread-1: Traceback (most recent call last): File "/home/nguyen/anaconda3/envs/pcl/lib/python3.5/threading.py", line 914, in _bootstrap_inner self.run() File "/home/nguyen/anaconda3/envs/pcl/lib/python3.5/threading.py", line 862, in run self._target(*self._args, **self._kwargs) File "/home/nguyen/anaconda3/envs/pcl/lib/python3.5/multiprocessing/resource_sharer.py", line 139, in _serve signal.pthread_sigmask(signal.SIG_BLOCK, range(1, signal.NSIG)) File "/home/nguyen/anaconda3/envs/pcl/lib/python3.5/signal.py", line 60, in pthread_sigmask sigs_set = _signal.pthread_sigmask(how, mask) ValueError: signal number 32 out of range

No errors were generated during CUDA code compilation. I searched solutions for this error, it seems like it's a problem of python, it updated my python version to 3.7 by following some suggestions, but I am still stuck in it.

My configured environment:

python = 3.5
cython = 0.28.5
pytorch = 0.4.1
cuda92
GNU Compiler Collection 70

My Nvidia toolkit version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2018 NVIDIA Corporation
Built on Tue_Jun_12_23:07:04_CDT_2018
Cuda compilation tools, release 9.2, V9.2.148

How to use MCG boxes on COCO?

Hi,I have download MCG boxes on COCO.How should I use it? Do I need to convert it into pkl file?Could you share your pkl file on COCO?

A problem about GPU memory

Hi, Thanks for your great code. I have a problem about the GPU memory used.

I run the code on GTX 1080Ti. At the beginning of the training, the code uses about 7000+MiB memory, but it will gradully increases to 10000+MiB memory at about 800-1000 iter. I am confused why the memory will change.

By the way, could you please tell me the memory used in your experiment?

Thank you!

Report my results with default settings

I used the default settings and got the results on PASCAL VOC 2007 testset as below. Have anyone else train the network and could you share your results below? I want to locate the wrong places.


INFO voc_dataset_evaluator.py: 165: AP for aeroplane = 0.6428
INFO voc_dataset_evaluator.py: 165: AP for bicycle = 0.6947
INFO voc_dataset_evaluator.py: 165: AP for bird = 0.4916
INFO voc_dataset_evaluator.py: 165: AP for boat = 0.1704
INFO voc_dataset_evaluator.py: 165: AP for bottle = 0.2121
INFO voc_dataset_evaluator.py: 165: AP for bus = 0.6849
INFO voc_dataset_evaluator.py: 165: AP for car = 0.6873
INFO voc_dataset_evaluator.py: 165: AP for cat = 0.4078
INFO voc_dataset_evaluator.py: 165: AP for chair = 0.2315
INFO voc_dataset_evaluator.py: 165: AP for cow = 0.5369
INFO voc_dataset_evaluator.py: 165: AP for diningtable = 0.4312
INFO voc_dataset_evaluator.py: 165: AP for dog = 0.5664
INFO voc_dataset_evaluator.py: 165: AP for horse = 0.4256
INFO voc_dataset_evaluator.py: 165: AP for motorbike = 0.6703
INFO voc_dataset_evaluator.py: 165: AP for person = 0.0933
INFO voc_dataset_evaluator.py: 165: AP for pottedplant = 0.2565
INFO voc_dataset_evaluator.py: 165: AP for sheep = 0.4355
INFO voc_dataset_evaluator.py: 165: AP for sofa = 0.3715
INFO voc_dataset_evaluator.py: 165: AP for train = 0.6363
INFO voc_dataset_evaluator.py: 165: AP for tvmonitor = 0.5709
INFO voc_dataset_evaluator.py: 168: Mean AP = 0.4609
INFO voc_dataset_evaluator.py: 169: ~~~~~~~~
INFO voc_dataset_evaluator.py: 170: Results:
INFO voc_dataset_evaluator.py: 172: 0.643
INFO voc_dataset_evaluator.py: 172: 0.695
INFO voc_dataset_evaluator.py: 172: 0.492
INFO voc_dataset_evaluator.py: 172: 0.170
INFO voc_dataset_evaluator.py: 172: 0.212
INFO voc_dataset_evaluator.py: 172: 0.685
INFO voc_dataset_evaluator.py: 172: 0.687
INFO voc_dataset_evaluator.py: 172: 0.408
INFO voc_dataset_evaluator.py: 172: 0.232
INFO voc_dataset_evaluator.py: 172: 0.537
INFO voc_dataset_evaluator.py: 172: 0.431
INFO voc_dataset_evaluator.py: 172: 0.566
INFO voc_dataset_evaluator.py: 172: 0.426
INFO voc_dataset_evaluator.py: 172: 0.670
INFO voc_dataset_evaluator.py: 172: 0.093
INFO voc_dataset_evaluator.py: 172: 0.257
INFO voc_dataset_evaluator.py: 172: 0.436
INFO voc_dataset_evaluator.py: 172: 0.371
INFO voc_dataset_evaluator.py: 172: 0.636
INFO voc_dataset_evaluator.py: 172: 0.571
INFO voc_dataset_evaluator.py: 173: 0.461
INFO voc_dataset_evaluator.py: 174: ~~~~~~~~
INFO voc_dataset_evaluator.py: 175:
INFO voc_dataset_evaluator.py: 176: ----------------------------------------------------------

pcl loss in pytorch

Hi,
I was wondering if PCLLosses implemented in line 173 in pcl.py works or not? Does it achieve the same accuracy with the current CUDA one? If it works, does it cause slow training speed or larger memory cost? Thanks

Too long test time

Thanks you for your codes.
When I use the pytorch1.6.0 branch and default setting, the test time is very very long(~7days).
My GPU is 1080Ti, and the training time is normal(~13hours).
Have you ever encountered the same problem? And do you have any ideas? Thanks a lot.

Generating VOC2012 test result problem

When I test my trained model on VOC2012, i get the following err:

Traceback (most recent call last):
File "tools/test_net.py", line 134, in
check_expected_results=True)
File "voc2012/no-trick/baseline_iter5/oicr_project/lib/core/test_engine.py", line 127, in run_inference
all_results = result_getter()
File "voc2012/no-trick/baseline_iter5/oicr_project/lib/core/test_engine.py", line 107, in result_getter
multi_gpu=multi_gpu_testing
File "voc2012/no-trick/baseline_iter5/oicr_project/lib/core/test_engine.py", line 157, in test_net_on_dataset
args, dataset_name, proposal_file, output_dir, gpu_id=gpu_id
File "voc2012/no-trick/baseline_iter5/oicr_project/lib/core/test_engine.py", line 236, in test_net
dataset_name, proposal_file, ind_range
File "voc2012/no-trick/baseline_iter5/oicr_project/lib/core/test_engine.py", line 336, in get_roidb_and_dataset
proposal_limit=cfg.TEST.PROPOSAL_LIMIT
File "voc2012/no-trick/baseline_iter5/oicr_project/lib/datasets/json_dataset.py", line 155, in get_roidb
crowd_filter_thresh
File "voc2012/no-trick/baseline_iter5/oicr_project/lib/datasets/json_dataset.py", line 231, in _add_proposals_from_file
assert entry['id'] == proposals[id_field][i]
AssertionError
srun: error: SH-IDC2-172-20-20-69: task 0: Exited with exit code 1
srun: Terminating job step 678835.0

ConnectionRefusedError: [Errno 111] Connection refused

Hi, I have been getting this problem when I am trying to run the baseline code on COCO DATASET.
I think the main problem is this: ValueError: n_samples=2 should be >= n_clusters=3
It would be great if u could let me know how to solve it

About the improvement compared to the paper

Hi,
Thank you for your great work!
It puzzles me that the performance in your original paper with VGG16 is 43.5%, but there is another 5.5% increase in this repository.
Is there any tricks besides that you have mentioned? Which parts of this implementation are critical to improve the overall results?
By the way, do you ever try to use this results as pseudo label and train a fully-supervised network? And could you tell me the performance?

Best Regards.

Performance of COCO

What's the performance of this code when using COCO, and after using the *4 trick?
Thanks.

batch size selection

Hi, thanks for sharing your implementation. I have a question about the batch size. Why batch size of 2 is selected? Batch size of 2 is also chosen by OICR. Have your ever tired batch size of 1, or other batch size larger than 2?

Runtime Error: Blob dimensions mismatch in the collate_minibatch function

Hi all,

I tried to run the codes with a configuration as following to load the VOC2007 dataset into the main thread:

CUDA_VISIBLE_DEVICES=0 python tools/train_net_step.py --dataset voc2007 --cfg configs/baselines/vgg16_voc2007.yaml --bs 5 --nw 0 --iter_size 4

I got the error below :

Traceback (most recent call last): File "tools/train_net_step.py", line 404, in main input_data = next(dataiterator) File "/home/nguyen/anaconda3/envs/pcl2/lib/python3.6/site-packages/torch/utils/data/dataloader.py", line 322, in __next__ batch = self.collate_fn([self.dataset[i] for i in indices]) File "/home/nguyen/Documents/test-pcl.pytorch/pcl.pytorch/lib/roi_data/loader.py", line 154, in collate_minibatch minibatch = default_collate(mini_list) File "/home/nguyen/anaconda3/envs/pcl2/lib/python3.6/site-packages/torch/utils/data/dataloader.py", line 189, in default_collate return {key: default_collate([d[key] for d in batch]) for key in batch[0]} File "/home/nguyen/anaconda3/envs/pcl2/lib/python3.6/site-packages/torch/utils/data/dataloader.py", line 189, in <dictcomp> return {key: default_collate([d[key] for d in batch]) for key in batch[0]} File "/home/nguyen/anaconda3/envs/pcl2/lib/python3.6/site-packages/torch/utils/data/dataloader.py", line 178, in default_collate return torch.stack([torch.from_numpy(b) for b in batch], 0) RuntimeError: invalid argument 0: Sizes of tensors must match except in dimension 0. Got 900 and 320 in dimension 2 at /opt/conda/conda-bld/pytorch_1532579245307/work/aten/src/TH/generic/THTensorMath.cpp:3616

The important notice is RuntimeError: invalid argument 0: Sizes of tensors must match except in dimension 0. Got 900 and 320 in dimension 2 ...

What I understand is that blobs which form a mini list to feed into 'default_collate' need to have the same dimension, but when I checked that blob dimensions (batch_size = 5), what I got :

(3, 900, 1200) (3, 320, 480) (3, 381, 576) (3, 648, 864) (3, 799, 1200)

How can I fix this issue?

COCO model

Hi, this code is very helpful to me. I want to test it on COCO. Could you share your model trained on COCO dataset? Thank you very much!

VOC2007 mAP Results

Hi, thank's for sharing your code.

From the paper, mAP of PASCAL VOC 2007 test set is 45.3% with single model. I trained the model and got 43% with the shared hyper-parameters.

Is there anything I should do to get the actual result?

Thanks.

ConnectionRefusedError

mickey@a208-System-Product-Name:~/pcl.pytorch$ CUDA_VISIBLE_DEVICES=0 python tools/train_net_step.py --dataset voc2007 --cfg configs/baselines/vgg16_voc2007.yaml --bs 1 --nw 4 --iter_size 4

ConnectionRefusedError: [Errno 111] Connection refused

Hi,I don't know how to solve the problem.I Google the answer.I find when I change the nw to 0, and the error disappear.But there will be a new problem:
AttributeError: 'Variable' object has no attribute 'dtype'

The implementation of imagenet train1k sampling

Hi @ppengtang, sorry to bother you again.
I try to sample images from training set use the train_pos__.txt in ILSVRC2013_devkit/data/det_lists. But ~131K images could be obtained. Did you also sampled any negative images from ILSVRC2013_DET_train_extra using train_neg__.txt.

Thank for your great work!
I also meet the sample problem as him. I load the train_pos_1.txt to train_pos_201.txt and sample max 1000 line from each file, concate them to get the 'train1k' set. But the number of it is only ~131k, which is not the same as your paper report.
So could you release the code or give me a brief description of the sampling algorithm?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.