kevinlin311tw / cvpr16-deepbit Goto Github PK
View Code? Open in Web Editor NEWLearning Compact Binary Descriptors with Unsupervised Deep Neural Networks (CVPR16)
License: Other
Learning Compact Binary Descriptors with Unsupervised Deep Neural Networks (CVPR16)
License: Other
Hi, I have a quick and basic question to solve a doubt.
For evaluating DeepBit on the (Photo Tourism) Brown dataset, did you up-sample each 64x64 patch to the 224x224 network input size?
Hi, I have a question,how the accuracy rate be calculated without a label? Thanks very much.
When I fine tune VGG16 with the code provided in stage1, loss1 increases until 0.25 and loss2 decreases to a small value < 1e-5. I use output bits: 64, batch size:32. Can someone give me any advice about this strange situation?
Hi, When I run the ./train.sh common, the following error ,how to solve the problem , thanks
error: check failed : fd != -1 (-1 vs. -1) File not found : DeepBit32_stage2_iter_5000.caffemodel
I find this line is different to your paper.
According to your paper, I think it should be
loss = loss + (binary[i]-0.5-bottom_data[i])*(binary[i]-0.5-bottom_data[i]);
Can you tell me where is I am wrong?
Execute "./prepare.sh" failed:
I can access dropbox.com but cannot access the model and dataset mentioned in prepare.sh.
Any alternative solution?
After installing the requirements, when I run the code make all -j8
, I got this error.
LD -o .build_release/lib/libcaffe.so
ld: framework not found vecLib
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [.build_release/lib/libcaffe.so] Error 1
So I think it can not find vecLib.
I use macOs Mojave 10.14.5.
So what should I do?
Thanks in advance
I had followed your instruction step by step, why that I can't get the ideal results presented in your paper. Is there anything that I should pay extra attention to?
Hello, can help me explain this loss code, I do not understand, thank you very much!For example, why add (i*channels) in dot product operation? why have two weight?
for (int i = 0; i < bottom[0]->num(); ++i) {
dist_sq_.mutable_cpu_data()[i] = caffe_cpu_dot(channels,
diff_.cpu_data() + (ichannels), diff_.cpu_data() + (ichannels));
loss += (rotation_weight2[i]*(rotation_weight1[i]*dist_sq_.cpu_data()[i]));
}
We get the following error when we do "make runtest". We use CUDA 7.5 on Ubuntu 14.04. Could you please suggest a solution for it?
https://github.com/kevinlin311tw/cvpr16-deepbit/blob/master/README.md
[----------] 4 tests from ImageDataLayerTest/0, where TypeParam = caffe::CPUDevice
[ RUN ] ImageDataLayerTest/0.TestShuffle
*** Aborted at 1470802253 (unix time) try "date -d @1470802253" if you are using GNU date ***
PC: @ 0x2b17d11def20 (unknown)
*** SIGSEGV (@0x0) received by PID 43804 (TID 0x2b17cbfc91c0) from PID 0; stack trace: ***
@ 0x2b17d2301d40 (unknown)
@ 0x2b17d11def20 (unknown)
@ 0x569cac std::operator+<>()
@ 0x2b17d1645117 caffe::ImageDataLayer<>::DataLayerSetUp()
@ 0x2b17d1626ce3 caffe::BasePrefetchingDataLayer<>::LayerSetUp()
@ 0x5519ea caffe::ImageDataLayerTest_TestShuffle_Test<>::TestBody()
@ 0x7b4803 testing::internal::HandleExceptionsInMethodIfSupported<>()
@ 0x7ab4e7 testing::Test::Run()
@ 0x7ab58e testing::TestInfo::Run()
@ 0x7ab695 testing::TestCase::Run()
@ 0x7ae9d8 testing::internal::UnitTestImpl::RunAllTests()
@ 0x7aec67 testing::UnitTest::Run()
@ 0x44fd4a main
@ 0x2b17d22ecec5 (unknown)
@ 0x456169 (unknown)
@ 0x0 (unknown)
make: *** [runtest] Segmentation fault (core dumped)
Section 4.2. "Results in Image Matching" What was the processing time of the descriptor ORB and DeepBit?
Because I would use the DeepBit in time real for image matching.
I got the following error while executing train.sh script.How can I handle this error? Thanks very much.
Check failed: fd != -1 (-1 vs. -1) File not found: solver_stage1.prototxt
*** Check failure stack trace: ***
@ 0x7ffbddd355cd google::LogMessage::Fail()
@ 0x7ffbddd37433 google::LogMessage::SendToLog()
@ 0x7ffbddd3515b google::LogMessage::Flush()
@ 0x7ffbddd37e1e google::LogMessageFatal::~LogMessageFatal()
@ 0x7ffbde3fa178 caffe::ReadProtoFromTextFile()
@ 0x7ffbde400ff6 caffe::ReadSolverParamsFromTextFileOrDie()
@ 0x40ad3a train()
@ 0x407fc0 main
@ 0x7ffbdcc2f830 __libc_start_main
@ 0x4087e9 _start
@ (nil) (unknown)
Hi guys,
Although I read the paper and have a look at the source code, I could not understand how it works with the unsupervised approach.
This code snippet is from K2_min_quantization_loss_layer.
How is bottom_data calculated?
for ( int i = 0; i < count; i++)
{
if(bottom_data[i] > 0.5){
binary[i] = 1;
}
else{
binary[i] = 0;
}
}
for (int i = 0; i < count; ++i) {
loss = loss + (binary[i]-bottom_data[i])*(binary[i]-bottom_data[i]);
diff_.mutable_cpu_data()[0] = diff_.mutable_cpu_data()[0] + (binary[i]-bottom_data[i])*(-bottom_data[i]);
}
run_cifar10
cvpr16-deepbit startup
Cleared 0 solvers and 0 stand-alone nets
WARNING: Logging before InitGoogleLogging() is written to STDERR
I0617 21:46:16.693743 67684 upgrade_proto.cpp:52] Attempting to upgrade input file specified using deprecated V1LayerParameter: ./models/deepbit/deploy32.prototxt
F0617 21:46:16.715786 67684 upgrade_proto.cpp:660] Refusing to upgrade inconsistent NetParameter input; the definition includes both 'layer' and 'layers' fields. The current format defines 'layer' fields with string type like layer { type: 'Layer' ... } and not layers { type: LAYER ... }. Manually switch the definition to 'layer' format to continue.
Hi, thank you for your working.
I just wonder how I can change max_iter
parameter (in Optimization step) as your paper presented. In your example with Cifar I could not find where to change max_iter
.
Thank you in advance.
I'm a beginner of deep hash, and I admire this method. I have already achieve generating hash codes by adding latent layer on my own dataset.
Then I wanna improve it, but I can't find **the registrations of K1&K2_EuclideanLossLayer and their LayerParameters** in **caffe.proto**, are they necessary?
Hi, I have noticed that reported performance has far beyond baselines but which is mAP@1K
. Consider your baselines are all mAP
which should be lower than mAP@1K
in your implementation. As claimed in section 4.3,
Following the settings in [24](Deep hashing for compact binary codes learning, CVPR 15) ...
however, DH reported mAP
rather than mAP@1K
(if you double check the setting in [24]). Could you please give us more details about the real mAP
on Cifar10 to fully compare with others.
In our evaluation, even ITQ (well-known and still competitive baseline) has reached 20+ mAP@1K
, which makes us wonder whether Deepbit outperforms baselines that much?
Anyway, good work and thanks for the open source codes.
I am trying to deploy the network with python. Can someone help me with converting converting the features from fc8_kevin to binary. For example, the output from fc8 is like this.
[[-0.56248081 -0.45775688 -1.30485046 -0.1604958 1.5815804 0.77081078
-0.7585181 -1.10825634 -1.4173944 -0.79846704 0.49331596 -0.42672595
0.13242441 -0.19356699 -1.40226376 -0.30305305 0.51420587 -0.613258
-0.56232476 -1.44308019 -1.60355341 -0.82647151 0.34802282 -1.08634388
-0.70180577 -1.15342426 -1.00441277 0.03183408 0.90380871 -0.03189395
-0.22369295 0.1908104 ]]
Hi,
I retrain the model on the NUSWIDE dataset. But the output binary codes for all the test and database samples are the same. Namely, the pdist2 matrix is zero matrix.
I wanna to know why this happen?
Thank you very much your paper. Is the larger the number of categories, the higher the number of hash code bits?Because I use your SSDH-VGG16-48 direct training, can't converge. The training data is in 100 categories。
Hi, I tried to use train.sh to get the training model. However, when caffe tried to load mean file from imagenet_mean.binaryproto, it gives me an error "check failed: !lines_.empty() File is empty". How can I handle this error? Thanks very much.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.