bob issueshttps://gitlab.idiap.ch/groups/bob/-/issues2018-06-21T08:07:07Zhttps://gitlab.idiap.ch/bob/bob.measure/-/issues/43--log option does not work in the evaluate command2018-06-21T08:07:07ZAmir MOHAMMADI--log option does not work in the evaluate commandSee:
```
bin/bob measure evaluate measure_scores/scores-{dev,eval} -e -l /tmp/log.txt
Traceback (most recent call last):
File "bin/bob", line 29, in <module>
sys.exit(bob.extension.scripts.main_cli())
File "/home/amir/miniconda/e...See:
```
bin/bob measure evaluate measure_scores/scores-{dev,eval} -e -l /tmp/log.txt
Traceback (most recent call last):
File "bin/bob", line 29, in <module>
sys.exit(bob.extension.scripts.main_cli())
File "/home/amir/miniconda/envs/bob36/lib/python3.6/site-packages/click/core.py", line 722, in __call__
return self.main(*args, **kwargs)
File "/home/amir/miniconda/envs/bob36/lib/python3.6/site-packages/click/core.py", line 697, in main
rv = self.invoke(ctx)
File "/home/amir/miniconda/envs/bob36/lib/python3.6/site-packages/click/core.py", line 1066, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/home/amir/miniconda/envs/bob36/lib/python3.6/site-packages/click/core.py", line 1066, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/home/amir/miniconda/envs/bob36/lib/python3.6/site-packages/click/core.py", line 895, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/home/amir/miniconda/envs/bob36/lib/python3.6/site-packages/click/core.py", line 535, in invoke
return callback(*args, **kwargs)
File "/home/amir/miniconda/envs/bob36/lib/python3.6/site-packages/click/decorators.py", line 17, in new_func
return f(get_current_context(), *args, **kwargs)
File "/home/amir/idiap/git/bobs/bob.pad.base/src/bob.measure/bob/measure/script/commands.py", line 258, in evaluate
ctx.invoke(metrics, scores=scores, evaluation=evaluation)
File "/home/amir/miniconda/envs/bob36/lib/python3.6/site-packages/click/core.py", line 535, in invoke
return callback(*args, **kwargs)
File "/home/amir/miniconda/envs/bob36/lib/python3.6/site-packages/click/decorators.py", line 17, in new_func
return f(get_current_context(), *args, **kwargs)
File "/home/amir/idiap/git/bobs/bob.pad.base/src/bob.measure/bob/measure/script/commands.py", line 41, in metrics
process = figure.Metrics(ctx, scores, evaluation, load.split)
File "/home/amir/idiap/git/bobs/bob.pad.base/src/bob.measure/bob/measure/script/figure.py", line 170, in __init__
self.log_file = open(self._log, self._open_mode)
TypeError: open() argument 2 must be str, not None
```Theophile GENTILHOMMETheophile GENTILHOMMEhttps://gitlab.idiap.ch/bob/bob.io.base/-/issues/20HDF5 contents not available until file is actually closed2018-06-20T17:36:07ZManuel Günthersiebenkopf@googlemail.comHDF5 contents not available until file is actually closedThis is more of a question rather than a bug, but it might still result in an action.
I have a process that writes a large HDF5 file using `bob.io.base.HDF5File`. I want to check with an external tool (e.g., `h5ls`) which entries alread...This is more of a question rather than a bug, but it might still result in an action.
I have a process that writes a large HDF5 file using `bob.io.base.HDF5File`. I want to check with an external tool (e.g., `h5ls`) which entries already have been written into the file. Unfortunately, `h5ls` does not work, it shows me the error `unable to open file`, although the file on disk is already several gigabytes large.
I have written a small test code that shows a possible solution, i.e., using the `flush` operation:
```
import bob.io.base
import subprocess
h = bob.io.base.HDF5File("test.hdf5", 'w')
h.set("Data", range(10))
print("Before flush:")
subprocess.call(['h5ls', 'test.hdf5'])
h.flush()
print("After flush:")
subprocess.call(['h5ls', 'test.hdf5'])
h.set("Data2", range(10,20))
print("After new data add:")
subprocess.call(['h5ls', 'test.hdf5'])
del h
print("After delete:")
subprocess.call(['h5ls', 'test.hdf5'])
```
The output is:
```
Before flush:
test.hdf5: unable to open file
After flush:
Data Dataset {10}
After new data add:
Data Dataset {10}
After delete:
Data Dataset {10}
Data2 Dataset {10}
```
Hence, to be able to see the contents of the file via `h5ls` (or similar), we need to `flush` the content. My question would be: should we automatically flush after we have added/changed the contents of the file? Is there any reason (for example that the `flush` operation might be expensive) not to `flush` every time @andre.anjos?https://gitlab.idiap.ch/bob/bob.measure/-/issues/42The evaluate command prints all the metrics2018-06-20T13:11:00ZAmir MOHAMMADIThe evaluate command prints all the metricsWhen you run `bob measure evaluate`, it prints all the possible metrics for each system.
I think it would be better to print eer only by default and provide the --criterion option.
This is also true for bob.bio.base and bob.pad.baseWhen you run `bob measure evaluate`, it prints all the possible metrics for each system.
I think it would be better to print eer only by default and provide the --criterion option.
This is also true for bob.bio.base and bob.pad.baseAmir MOHAMMADIAmir MOHAMMADIhttps://gitlab.idiap.ch/bob/bob.measure/-/issues/41The hist command needs some adjustments2018-06-20T13:11:00ZAmir MOHAMMADIThe hist command needs some adjustments@theophile.gentilhomme while evaluating the hist command, I realized by default only eval scores are plotted and are asked for. The docs say:
```
If you want to
display dev-scores distributions as well, use ``--show-dev`` option.
```
B...@theophile.gentilhomme while evaluating the hist command, I realized by default only eval scores are plotted and are asked for. The docs say:
```
If you want to
display dev-scores distributions as well, use ``--show-dev`` option.
```
But this --show-dev option does not exist. (I think it should be on by default too)
Please also see https://gitlab.idiap.ch/bob/bob.bio.base/issues/112
* There is no way to disable the threshold line
* You can provide -c far but no --far-value.
* --line-styles does nothing in the hist command. Should it be there at all?Theophile GENTILHOMMETheophile GENTILHOMMEhttps://gitlab.idiap.ch/bob/bob/-/issues/247Removal of bob packages from MacPorts2018-06-18T14:03:27ZAndré AnjosRemoval of bob packages from MacPortsIt would be good if anyone could handle this... We still receive e-mails from time to time and people are trying to compile it despite the outdated versions.It would be good if anyone could handle this... We still receive e-mails from time to time and people are trying to compile it despite the outdated versions.https://gitlab.idiap.ch/bob/bob.pad.base/-/issues/19SVM does not return a proper shape2018-06-13T08:45:09ZGuillaume HEUSCHSVM does not return a proper shapeIt looks like sometimes the SVM Machine (after cross-validation grid search) has a different shape than input ... This should be investigated further.It looks like sometimes the SVM Machine (after cross-validation grid search) has a different shape than input ... This should be investigated further.Guillaume HEUSCHGuillaume HEUSCHhttps://gitlab.idiap.ch/bob/bob.learn.libsvm/-/issues/6Error using NU_SVC machine2018-06-13T08:44:14ZAndré AnjosError using NU_SVC machine*Created by: acostapazo*
I got the following error using a trainer with machine_type=='NU_SVC'
RuntimeError: 1D `input' array should have 0 elements matching `bob.learn.libsvm.Machine' input size, not 3 elements
I tried to reprodu...*Created by: acostapazo*
I got the following error using a trainer with machine_type=='NU_SVC'
RuntimeError: 1D `input' array should have 0 elements matching `bob.learn.libsvm.Machine' input size, not 3 elements
I tried to reproduce this behaviour using the following code. Here we can observe that with random data (100 per each classes) all works in a expected way, but if I use different data, the machine that I get from the trainer seams corrupted. Take note that the machine shape is very unexpected in the second test and this produces the error.
```
import os
import numpy
numpy.random.seed(10)
import bob.learn.libsvm
def svm_predict(svm_machine, data):
labels = [svm_machine.predict_class_and_scores(x)[0][0] for x in data]
return numpy.array(labels)
def train_and_test(train_class1,train_class2,test):
svm_trainer = bob.learn.libsvm.Trainer(machine_type='NU_SVC')
svm_machine = svm_trainer.train([train_class1,train_class2])
print svm_machine.shape
pred_test = svm_predict(svm_machine,test)
return pred_test
print 'Test 1 ************************************************************'
train_class1 = 0.4 * numpy.random.randn(100, 3).astype(numpy.float64)
train_class2 = 0.6 * numpy.random.randn(100, 3).astype(numpy.float64)
test = 0.4 * numpy.random.randn(20, 3).astype(numpy.float64)
pred_test = train_and_test(train_class1,train_class2,test)
print 'Test 2 (less data) *************************************************'
train_class1 = 0.4 * numpy.random.randn(60, 3).astype(numpy.float64)
train_class2 = 0.6 * numpy.random.randn(290, 3).astype(numpy.float64)
test = 0.4 * numpy.random.randn(20, 3).astype(numpy.float64)
pred_test = train_and_test(train_class1,train_class2,test)
```https://gitlab.idiap.ch/bob/bob.learn.libsvm/-/issues/10LIBSVM_VERSION is passed as a string to the compiler, but evaluated as uint64...2018-06-11T07:27:07ZManuel Günthersiebenkopf@googlemail.comLIBSVM_VERSION is passed as a string to the compiler, but evaluated as uint64_t in the codeRelated to bob/bob.extension#58.
In the `setup.py`, the `LIBSVM_VERSION` is passed as a compiler parameter in form of a string `"a.b"`. However, in the source code, it is evaluated as a `uint64_t`, e.g.: https://gitlab.idiap.ch/bob/bob....Related to bob/bob.extension#58.
In the `setup.py`, the `LIBSVM_VERSION` is passed as a compiler parameter in form of a string `"a.b"`. However, in the source code, it is evaluated as a `uint64_t`, e.g.: https://gitlab.idiap.ch/bob/bob.learn.libsvm/blob/d8fd7b158bf5d6225d1e472bec20812c493b28be/bob/learn/libsvm/cpp/machine.cpp#L386
Apparently, the parameter passed on the compiler command line is (luckily) ignored, but the one provided in the svm header file is used instead. So, we should remove the one passed on the command line.Manuel Günthersiebenkopf@googlemail.comManuel Günthersiebenkopf@googlemail.comhttps://gitlab.idiap.ch/bob/bob.io.audio/-/issues/6version relies on compiler command line parameter2018-06-11T07:26:47ZManuel Günthersiebenkopf@googlemail.comversion relies on compiler command line parameterCurrently, the `SOX_VERSION` is passed through the command line parameter of the compiler. When removing this feature in bob/bob.extension#58, we need to get the information from the actual `sox` header.Currently, the `SOX_VERSION` is passed through the command line parameter of the compiler. When removing this feature in bob/bob.extension#58, we need to get the information from the actual `sox` header.Manuel Günthersiebenkopf@googlemail.comManuel Günthersiebenkopf@googlemail.comhttps://gitlab.idiap.ch/bob/bob.io.base/-/issues/19HDF5_VERSION is computed but never used2018-06-11T07:24:59ZManuel Günthersiebenkopf@googlemail.comHDF5_VERSION is computed but never usedIn the `setup.py`, the `HDF5_VERSION` is computed and passed as compiler flag, but this version is never evaluated in the C++ code. There, only the `H5_VERSION` from the imported hdf5 header files is used, which is the way it should be.In the `setup.py`, the `HDF5_VERSION` is computed and passed as compiler flag, but this version is never evaluated in the C++ code. There, only the `H5_VERSION` from the imported hdf5 header files is used, which is the way it should be.Manuel Günthersiebenkopf@googlemail.comManuel Günthersiebenkopf@googlemail.comhttps://gitlab.idiap.ch/bob/bob.extension/-/issues/58The `-DBOOST_VERSION` flag has unnecessary and unwanted quotes2018-06-11T07:23:36ZManuel Günthersiebenkopf@googlemail.comThe `-DBOOST_VERSION` flag has unnecessary and unwanted quotesWhen providing the boost version as a compiler flag, we will obtain a compiler option ```-DBOOST_VERSION="a.b.c"```, following from here: https://gitlab.idiap.ch/bob/bob.extension/blob/b5c85f8b89bac3b4eee00490303fb8a7fc146b1a/bob/extensi...When providing the boost version as a compiler flag, we will obtain a compiler option ```-DBOOST_VERSION="a.b.c"```, following from here: https://gitlab.idiap.ch/bob/bob.extension/blob/b5c85f8b89bac3b4eee00490303fb8a7fc146b1a/bob/extension/boost.py#L213
While for most of the compilers this does not seem to be a problem, I had an issue when trying to compile and link bob libraries against cuda (`nvcc`) compiled libraries in `Caffe`, see: https://groups.google.com/forum/#!topic/bob-devel/TyWkD7pB0h4
I think, the quotes are completely unnecessary. We should be able to remove them and still compile Bob's libraries -- at least the above-mentioned compilation worked after removing the quotes.
Is there any possibility to test the compilation without the quotes?Manuel Günthersiebenkopf@googlemail.comManuel Günthersiebenkopf@googlemail.comhttps://gitlab.idiap.ch/bob/bob.extension/-/issues/50Download and Unzip2018-06-07T18:07:35ZTiago de Freitas PereiraDownload and UnzipHi,
The number of packages/classes that relies on pretrained models is increasing.
Follow below a rough estimation:
- bob.ip.tensorflow_extractor (3 classes)
- bob.ip.caffe_extractor (2 classes)
- bob.ip.pytorch_extractor (1 class as f...Hi,
The number of packages/classes that relies on pretrained models is increasing.
Follow below a rough estimation:
- bob.ip.tensorflow_extractor (3 classes)
- bob.ip.caffe_extractor (2 classes)
- bob.ip.pytorch_extractor (1 class as far as I know)
- bob.ip.dlib (1 class)
All of these classes implement their own download method, which consists in to:
- Download from one or more sources
- Unzip/Untar to some directory.
This is a good feature candidate for `bob.extension`. Would avoid some code repetition.
What do you think?https://gitlab.idiap.ch/bob/bob.pad.base/-/issues/23The grid_search.py entrypoint in setup.py breaks the same script as in bob.bi...2018-06-07T09:07:22ZAmir MOHAMMADIThe grid_search.py entrypoint in setup.py breaks the same script as in bob.bio.baseAmir MOHAMMADIAmir MOHAMMADIhttps://gitlab.idiap.ch/bob/bob.db.base/-/issues/18if (Stable releases dbs <> master branches dbs): raise nightlies exception2018-06-07T07:02:43ZTiago de Freitas Pereiraif (Stable releases dbs <> master branches dbs): raise nightlies exceptionI think some of you noticed that already; I'm just writing that to keep it registered (honestly, I don't know if we need that level control).
Currently, the place where the sqlite files are stored are the same no matter we are in a rele...I think some of you noticed that already; I'm just writing that to keep it registered (honestly, I don't know if we need that level control).
Currently, the place where the sqlite files are stored are the same no matter we are in a release or in the master branch.
The effect of that is, when we are updating something related with protocols in the master branch, our nightlies (that tests the released packages) fails (https://gitlab.idiap.ch/bob/bob.nightlies/-/jobs/87786).
What should be the best course of action?
1 - Release a new version of the db package as soon as we have a protocol update?
2 - Create different directories for the **stable** and **development** (and we control this via `bob_db_manage`?
One thing that I don't understand (that may solve the issue).
Why the `db.sql3` is not part of the wheels?? This would solve this issue.https://gitlab.idiap.ch/bob/bob.bio.base/-/issues/121Titles for ROC plots2018-06-06T06:05:44ZVedrana KRIVOKUCATitles for ROC plotsI'd like to have the option of removing "(Development)" and "(Evaluation)" from the titles of ROC plots when using ```bob bio roc```. At the moment, this does not seem possible. Could we enable this, please? Otherwise, if we are repor...I'd like to have the option of removing "(Development)" and "(Evaluation)" from the titles of ROC plots when using ```bob bio roc```. At the moment, this does not seem possible. Could we enable this, please? Otherwise, if we are reporting results only for the evaluation set (for example), it looks funny and potentially confusing if we specify "Evaluation" in the title.Theophile GENTILHOMMETheophile GENTILHOMMEhttps://gitlab.idiap.ch/bob/bob.bio.base/-/issues/122Documentation does not include a link to the recordings of the IJCB tutorial2018-06-05T19:41:25ZManuel Günthersiebenkopf@googlemail.comDocumentation does not include a link to the recordings of the IJCB tutorialI was giving the tutorial about the biometric recognition framework at IJCB 2017, the recordings of which are available here: https://www.youtube.com/playlist?list=PL-M6OZEM9v0FXfgvarnrpTMhURafZbXwp
For some reason, they never made it i...I was giving the tutorial about the biometric recognition framework at IJCB 2017, the recordings of which are available here: https://www.youtube.com/playlist?list=PL-M6OZEM9v0FXfgvarnrpTMhURafZbXwp
For some reason, they never made it into the documentation of this package. I think, we should change this.Manuel Günthersiebenkopf@googlemail.comManuel Günthersiebenkopf@googlemail.comhttps://gitlab.idiap.ch/bob/bob.db.base/-/issues/24bob_dbmanage.py breaks when one of the dbs are broken2018-06-05T16:33:00ZAmir MOHAMMADIbob_dbmanage.py breaks when one of the dbs are brokenHere is what I faced today:
```
Traceback (most recent call last):
File "bin/bob_dbmanage.py", line 85, in <module>
sys.exit(bob.db.base.script.dbmanage.main())
File "src/bob.db.base/bob/db/base/script/dbmanage.py", line 24, in m...Here is what I faced today:
```
Traceback (most recent call last):
File "bin/bob_dbmanage.py", line 85, in <module>
sys.exit(bob.db.base.script.dbmanage.main())
File "src/bob.db.base/bob/db/base/script/dbmanage.py", line 24, in main
formatter_class=RawDescriptionHelpFormatter)
File "src/bob.db.base/bob/db/base/manage.py", line 185, in create_parser
driver.add_commands(subparsers)
File "src/bob.db.swan/bob/db/swan/driver.py", line 153, in add_commands
from .create import create_subparser
File "src/bob.db.swan/bob/db/swan/create.py", line 8, in <module>
from .common import swan_bio_file_metadata
ImportError: cannot import name 'swan_bio_file_metadata'
```
This kind of errors should be handled.https://gitlab.idiap.ch/bob/bob.paper.biosig2016/-/issues/1Could you please make it public?2018-06-05T08:01:33ZTiago de Freitas PereiraCould you please make it public?Since this paper was already published, why this package is still private?
Could you please make it public @hmuckenhirn ?
ThanksSince this paper was already published, why this package is still private?
Could you please make it public @hmuckenhirn ?
Thankshttps://gitlab.idiap.ch/bob/bob.learn.libsvm/-/issues/3Regression using SVM is not supported2018-06-05T07:59:22ZAndré AnjosRegression using SVM is not supported*Created by: tiagofrepereira2012*
Issue copied from here: https://github.com/idiap/bob/issues/182
#################
@laurentes
We should either update the documentation and remove options such as NU_SVR, or support the regressio...*Created by: tiagofrepereira2012*
Issue copied from here: https://github.com/idiap/bob/issues/182
#################
@laurentes
We should either update the documentation and remove options such as NU_SVR, or support the regression task correctly.
@anjos
Supporting a regression task could be easily patched by adding another method to the class called double regress(const blitz::Array<double,1>& input).
To make that clean, one would need to check for NU_SVR || EPSILON_SVR all over the place to make sure the user is not trying to predict classes with a regression SVM.
Another alternative (I'm not sure that would be better) would be to create two inherited classes ClassificationSupportVector and RegressionSupportVector, which only contain specific methods for those tasks, avoiding the excessive checking. All common functionality remains in SupportVector.
Please share your thoughts.https://gitlab.idiap.ch/bob/bob.db.xm2vts/-/issues/1Data organization2018-06-05T07:53:07ZAndré AnjosData organization*Created by: laurentes*
There are two distinct problems:
1. The current API only allows the user to deal with still images of the database.
2. The current API assumes that the data of the database is stored in subdirectories, one for ea...*Created by: laurentes*
There are two distinct problems:
1. The current API only allows the user to deal with still images of the database.
2. The current API assumes that the data of the database is stored in subdirectories, one for each identity. It would be better to organize data in the same way as it is currently shipped when you order the database.
To solve both problems, this would require me to have the original CDs/DVDs of the database or at least to know the directory structure and the files contained in each subdirectory. Unfortunately, this is not the case, as the data we have at Idiap have very likely been reorganized over the years.
Could anyone provides me the file hierarchy for both image and/or audio data, in order to fix this issue?
Thanks in advance.