Commit 736d7072 authored by Zohreh MOSTAANI's avatar Zohreh MOSTAANI
Browse files

[general][doc] minor fixes

parent 5274081c
Pipeline #24642 passed with stages
in 4 minutes and 36 seconds
......@@ -118,7 +118,7 @@ They are provided into a list of dictionary, each element in this list being
associated to a database `channel`. The group, which contains outputs, is
the **synchronization channel**. By default, a loop is automatically performs
by the platform on the synchronization channel, and user-code must not loop
on this group. In contrast, it is the responsability of the user to load data
on this group. In contrast, it is the responsibility of the user to load data
from the other groups. This is described in more details in the following
subsections. Finally, the field `description` is optional and gives a short
description of the algorithm.
......@@ -243,10 +243,10 @@ The platform will call this method once per block of data available on the
.. _beat-system-algorithms-examples-parametrizable:
Parametrizable algorithm
........................
Parameterizable algorithm
.........................
To implement a parametrizable algorithm, two things must be added to the class:
To implement a parameterizable algorithm, two things must be added to the class:
(1) a field in the JSON declaration of the algorithm containing their default
values as well as the type of the parameters, and (2) a method called
``setup()``, that takes one argument, a map containing the parameters of the
......@@ -314,7 +314,7 @@ or by iterating over the list:
for input in inputs[0:2]:
print(input.data_format)
Additionally, the following method is useable on a **list of inputs**:
Additionally, the following method is usable on a **list of inputs**:
.. py:method:: hasMoreData()
......@@ -445,7 +445,7 @@ Unsynchronized input channels of algorithms can be accessed at will, and
algorithms can use it any way they want. To be able to perform their job, they
have access to additional methods.
The following method is useable on a **list of inputs**:
The following method is usable on a **list of inputs**:
.. py:method:: next()
......@@ -477,7 +477,7 @@ its inputs, the algorithm would do:
return True
The following methods are useable on an ``input``, in cases where the algorithm
The following methods are usable on an ``input``, in cases where the algorithm
doesn't care about the synchronization of some of its inputs:
.. py:method:: hasMoreData()
......
......@@ -135,7 +135,7 @@ of an ``index()`` method:
return [Entry(x.client_id, x.id, x.make_path(root_folder, '.pgm')) for x in objs]
The database views that are available in the BEAT platform is using `bob`_ database packages
that have well defined protocols. However defining new database views are not limitted to using such
that have well defined protocols. However defining new database views are not limited to using such
packages.
......@@ -227,7 +227,8 @@ In the following we present an example of a database view that is used by a subs
.. note::
Each view comes with a documentation describing the way the different outputs are synchronised together.
Each view comes with a documentation describing the way the different outputs are synchronized together.
In the example above if there are 10000 images in the dataset, there will be 10000 entries in list
......@@ -237,11 +238,12 @@ is ordered in a logical order (here: entries are grouped by ``client_id``).
For each entry in the dataset (represented as a named tuple), all the necessary data is
provided by ``index()``. For performance reasons, it is expected that we don’t need to instantiate ``bob.db.atnt.Database()`` anymore in the ``get()`` method. The user can put any information in the index method, except for the namse that are reserved by python named tuple such as c`class`. If the user wants to use such names they should add it to a dictionary before defining the index method.
provided by ``index()``. For performance reasons, it is expected that we don’t need to instantiate ``bob.db.atnt.Database()`` anymore in the ``get()`` method. The user can put any information in the index method, except for the names that are reserved by python named tuple such as c`class`. If the user wants to use such names they should add it to a dictionary before defining the index method.
.. code-block:: python
super(All, self)
self.output_member_map = {'class': 'cls'}
super(All, self)
self.output_member_map = {'class': 'cls'}
Some information from the database can be stored directly in the ``index()``
(in the given example: ``client_id`` and ``file_id``). For others, that require
......
......@@ -90,7 +90,7 @@ sufficient to:
* Add the library dependency into the `JSON`_ declaration of the algorithm
(or of the library). The name given as a key is the one used to import
the library, while the corresponding value is the fullname, that is
the library, while the corresponding value is the full name, that is
`author/name/version` of the library.
.. code-block:: javascript
......
......@@ -11,15 +11,16 @@ This section includes the user-facing guide for creating BEAT objects locally us
Requirements
============
#. Working internet connection.
#. Working Internet connection.
#. Firefox or Chrome browser.
#. A ``BEAT`` installation: Please see :ref:`beat-installation`.
#. BEAT familiarity: This guide assumes you are somewhat familiar with what BEAT is and how it works. Please see :ref:`beat-system` and refer to it if you come across an unfamiliar BEAT term or concept.
#. A BEAT ``prefix``: All the building blocks of BEAT is stored in a folder named ``prefix``. For the purpose of this tutorial we provide a ``prefix``. Please download the prefix folder in this `git repository <https://gitlab.idiap.ch/beat/beat.tutorial.prefix>`_ . Run any BEAT commands relating to the prefix in the top-level folder of this project, next to the prefix folder.
#. To simplify code examples, we will be using `Bob`_, a free signal-processing and machine learning toolbox originally developed by the Biometrics group at `Idiap`_ Research Institute, Switzerland. Please add the conda channel for ``bob`` to your conda environment and then install the packages needed for this tutorial.
#. A BEAT ``prefix``: All the building blocks of BEAT is stored in a folder typically named ``prefix``. For the purpose of this tutorial we provide this folder. Please download the prefix folder in this `git repository <https://gitlab.idiap.ch/beat/beat.tutorial.prefix>`_ . Run any BEAT commands relating to the prefix in the top-level folder of it, next to the prefix folder.
#. To simplify code examples, we will be using `Bob`_, a free signal-processing and machine learning toolbox originally developed by the Biometrics group at `Idiap`_ Research Institute, Switzerland. Please add the conda channel for ``bob`` to the conda environment with BEAT packages are installed and then install the packages needed for this tutorial.
.. code:: sh
$ conda activate beat_py3
$ conda config --env --add channels https://www.idiap.ch/software/bob/conda
$ conda install bob bob.db.iris bob.bio.base bob.bio.face ipdb
......@@ -30,14 +31,14 @@ The Workflow
There are a few things you have to do to create BEAT objects locally:
#. Create & edit the metadata of BEAT objects
#. Edit the Python code for certain types of BEAT objects
#. Test, debug, visualize, and manage your BEAT objects
#. Create & edit the metadata of BEAT objects.
#. Edit the Python code for certain types of BEAT objects.
#. Test, debug, visualize, and manage your BEAT objects.
Each of these steps is filled by a different tool:
#. ``beat.editor`` edits metadata through a web application.
#. You use your own editor of your choice to edit the neccasary codes.
#. You use your own editor of your choice to edit the necessary codes.
#. ``beat.cmdline`` does "the rest", letting you run & visualize experiments, manage the cache, debug, and much more. For more information see :ref:`beat_cmdline_introduction`.
You might have a window setup like the following:
......@@ -109,9 +110,9 @@ The Goal: What do we want?
We will get 3 figures of merit from running the experiment:
* The EER (Equal Error Rate)
* ROC plot
* Scores histogram plot
* The EER (Equal Error Rate).
* ROC plot.
* Scores histogram plot.
Designing our Experiment outside of BEAT
......@@ -209,7 +210,7 @@ Now let's generate the ROC and scores distribution plots! Run the following: ::
$ beat exp plot --show test/test/iris/1/iris
This plots our experiment's plottable results. The ``--show`` flag tells us to pop up the plots as soon as they are generated, so we don't have to find them in the filesystem to see them.
This plots our experiment's plot table results. The ``--show`` flag tells us to pop up the plots as soon as they are generated, so we don't have to find them in the filesystem to see them.
You should be seeing two plots, the ROC and scores distribution:
......@@ -296,7 +297,7 @@ Recomment line 53 and uncomment line 54: ::
#import ipdb;ipdb.set_trace()
Run the experiment again to be put into an ipdb prompt when the block executes! You can play around in here like normal, and make sure that "nump" was just a mispelling of "numpy".
Run the experiment again to be put into an ipdb prompt when the block executes! You can play around in here like normal, and make sure that "nump" was just a misspelling of "numpy".
The Iris Means Experiment
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment