diff --git a/doc/DeepSpeech.md b/doc/DeepSpeech.md deleted file mode 100644 index 9001efa9..00000000 --- a/doc/DeepSpeech.md +++ /dev/null @@ -1,70 +0,0 @@ - -# Introduction - -In this notebook we will reproduce the results of -[Deep Speech: Scaling up end-to-end speech recognition](http://arxiv.org/abs/1412.5567). -The core of the system is a bidirectional recurrent neural network (BRNN) -trained to ingest speech spectrograms and generate English text transcriptions. - -Let a single utterance and label be sampled from a training set -. -Each utterance, is a time-series of length -where every time-slice is a vector of audio features, - where . -We use MFCC as our features; so denotes the -th MFCC feature -in the audio frame at time . The goal of our BRNN is to convert an input -sequence into a sequence of character probabilities for the transcription -, with , -where . -(The significance of will be explained below.) - -Our BRNN model is composed of layers of hidden units. -For an input , the hidden units at layer are denoted with the -convention that is the input. The first three layers are not recurrent. -For the first layer, at each time , the output depends on the MFCC frame - along with a context of frames on each side. -(We typically use for our experiments.) -The remaining non-recurrent layers operate on independent data for each time step. -Thus, for each time , the first layers are computed by: - -

- -where is a clipped rectified-linear (ReLu) -activation function and , are the weight matrix and bias -parameters for layer . The fourth layer is a bidirectional recurrent -layer[[1](http://www.di.ufpe.br/~fnj/RNA/bibliografia/BRNN.pdf)]. -This layer includes two sets of hidden units: a set with forward recurrence, -, and a set with backward recurrence : - -

-

- -Note that must be computed sequentially from to -for the -th utterance, while the units must be computed -sequentially in reverse from to . - -The fifth (non-recurrent) layer takes both the forward and backward units as inputs - -

- -where . The output layer are standard logits that -correspond to the predicted character probabilities for each time slice and -character in the alphabet: - -

- -Here denotes the -th bias and the -th -element of the matrix product. - -Once we have computed a prediction for , we compute the CTC loss -[[2]](http://www.cs.toronto.edu/~graves/preprint.pdf) -to measure the error in prediction. During training, we can evaluate the gradient - with respect to the network outputs given the -ground-truth character sequence . From this point, computing the gradient -with respect to all of the model parameters may be done via back-propagation -through the rest of the network. We use the Adam method for training -[[3](http://arxiv.org/abs/1412.6980)]. - -The complete BRNN model is illustrated in the figure below. - -![DeepSpeech BRNN](../images/rnn_fig-624x548.png) diff --git a/doc/DeepSpeech.raw b/doc/DeepSpeech.rst similarity index 100% rename from doc/DeepSpeech.raw rename to doc/DeepSpeech.rst diff --git a/doc/Geometry.md b/doc/Geometry.md deleted file mode 100644 index c655c4a9..00000000 --- a/doc/Geometry.md +++ /dev/null @@ -1,69 +0,0 @@ -# Geometric Constants - -This is about several constants related to the geometry of the network. - -## n_steps -The network views each speech sample as a sequence of time-slices of -length . As the speech samples vary in length, we know that -need not equal for . For each batch, BRNN in TensorFlow needs -to know `n_steps` which is the maximum for the batch. - -## n_input -Each of the at maximum `n_steps` vectors is a vector of MFCC features of a -time-slice of the speech sample. We will make the number of MFCC features -dependent upon the sample rate of the data set. Generically, if the sample rate -is 8kHz we use 13 features. If the sample rate is 16kHz we use 26 features... -We capture the dimension of these vectors, equivalently the number of MFCC -features, in the variable `n_input` - -## n_context -As previously mentioned, the BRNN is not simply fed the MFCC features of a given -time-slice. It is fed, in addition, a context of frames on -either side of the frame in question. The number of frames in this context is -captured in the variable `n_context` - -Next we will introduce constants that specify the geometry of some of the -non-recurrent layers of the network. We do this by simply specifying the number -of units in each of the layers - -## n_hidden_1, n_hidden_2, n_hidden_5 -`n_hidden_1` is the number of units in the first layer, `n_hidden_2` the number -of units in the second, and `n_hidden_5` the number in the fifth. We haven't -forgotten about the third or sixth layer. We will define their unit count below. - -A LSTM BRNN consists of a pair of LSTM RNN's. -One LSTM RNN that works "forward in time" - -LSTM - -and a second LSTM RNN that works "backwards in time" - -LSTM - -The dimension of the cell state, the upper line connecting subsequent LSTM units, -is independent of the input dimension and the same for both the forward and -backward LSTM RNN. - -## n_cell_dim -Hence, we are free to choose the dimension of this cell state independent of the -input dimension. We capture the cell state dimension in the variable `n_cell_dim`. - -## n_hidden_3 -The number of units in the third layer, which feeds in to the LSTM, is -determined by `n_cell_dim` as follows -```python -n_hidden_3 = 2 * n_cell_dim -``` - -## n_character -The variable `n_character` will hold the number of characters in the target -language plus one, for the . -For English it is the cardinality of the set - -we referred to earlier. - -## n_hidden_6 -The number of units in the sixth layer is determined by `n_character` as follows -```python -n_hidden_6 = n_character -``` diff --git a/doc/Geometry.raw b/doc/Geometry.rst similarity index 100% rename from doc/Geometry.raw rename to doc/Geometry.rst diff --git a/doc/ParallelOptimization.md b/doc/ParallelOptimization.md deleted file mode 100644 index 62a19234..00000000 --- a/doc/ParallelOptimization.md +++ /dev/null @@ -1,100 +0,0 @@ -# Parallel Optimization - -This is how we implement optimization of the DeepSpeech model across GPU's on a -single host. Parallel optimization can take on various forms. For example -one can use asynchronous updates of the model, synchronous updates of the model, -or some combination of the two. - -## Asynchronous Parallel Optimization - -In asynchronous parallel optimization, for example, one places the model -initially in CPU memory. Then each of the GPU's obtains a mini-batch of data -along with the current model parameters. Using this mini-batch each GPU then -computes the gradients for all model parameters and sends these gradients back -to the CPU when the GPU is done with its mini-batch. The CPU then asynchronously -updates the model parameters whenever it recieves a set of gradients from a GPU. - -Asynchronous parallel optimization has several advantages and several -disadvantages. One large advantage is throughput. No GPU will every be waiting -idle. When a GPU is done processing a mini-batch, it can immediately obtain the -next mini-batch to process. It never has to wait on other GPU's to finish their -mini-batch. However, this means that the model updates will also be asynchronous -which can have problems. - -For example, one may have model parameters on the CPU and send mini-batch - to GPU 1 and send mini-batch to GPU 2. As processing is asynchronous, -GPU 2 may finish before GPU 1 and thus update the CPU's model parameters -with its gradients , where the subscript identifies the -mini-batch and the argument the location at which the gradient was evaluated. -This results in the new model parameters - -

- -Next GPU 1 could finish with its mini-batch and update the parameters to - -

- -The problem with this is that is evaluated at and not -. Hence, the direction of the gradient -is slightly incorrect as it is evaluated at the wrong location. This can be -counteracted through synchronous updates of model, but this is also problematic. - -## Synchronous Optimization - -Synchronous optimization solves the problem we saw above. In synchronous -optimization, one places the model initially in CPU memory. Then one of the -GPU's is given a mini-batch of data along with the current model parameters. -Using the mini-batch the GPU computes the gradients for all model parameters and -sends the gradients back to the CPU. The CPU then updates the model parameters -and starts the process of sending out the next mini-batch. - -As on can readily see, synchronous optimization does not have the problem we -found in the last section, that of incorrect gradients. However, synchronous -optimization can only make use of a single GPU at a time. So, when we have a -multi-GPU setup, , all but one of the GPU's will remain idle, which is -unacceptable. However, there is a third alternative which is combines the -advantages of asynchronous and synchronous optimization. - -## Hybrid Parallel Optimization - -Hybrid parallel optimization combines most of the benifits of asynchronous and -synchronous optimization. It allows for multiple GPU's to be used, but does not -suffer from the incorrect gradient problem exhibited by asynchronous -optimization. - -In hybrid parallel optimization one places the model initially in CPU memory. -Then, as in asynchronous optimization, each of the GPU'S obtains a -mini-batch of data along with the current model parameters. Using the mini-batch -each of the GPU's then computes the gradients for all model parameters and sends -these gradients back to the CPU. Now, in contrast to asynchronous optimization, -the CPU waits until each GPU is finished with its mini-batch then takes the mean -of all the gradients from the GPU's and updates the model with this mean -gradient. - -LSTM - -Hybrid parallel optimization has several advantages and few disadvantages. As in -asynchronous parallel optimization, hybrid parallel optimization allows for one -to use multiple GPU's in parallel. Furthermore, unlike asynchronous parallel -optimization, the incorrect gradient problem is not present here. In fact, -hybrid parallel optimization performs as if one is working with a single -mini-batch which is times the size of a mini-batch handled by a single GPU. -Hoewever, hybrid parallel optimization is not perfect. If one GPU is slower than -all the others in completing its mini-batch, all other GPU's will have to sit -idle until this straggler finishes with its mini-batch. This hurts throughput. -But, if all GPU'S are of the same make and model, this problem should be -minimized. - -So, relatively speaking, hybrid parallel optimization seems the have more -advantages and fewer disadvantages as compared to both asynchronous and -synchronous optimization. So, we will, for our work, use this hybrid model. - -## Adam Optimization - -In constrast to -[Deep Speech: Scaling up end-to-end speech recognition](http://arxiv.org/abs/1412.5567), -in which -[Nesterov’s Accelerated Gradient Descent](www.cs.toronto.edu/~fritz/absps/momentum.pdf) -was used, we will use the Adam method for optimization -[[3](http://arxiv.org/abs/1412.6980)], -because, generally, it requires less fine-tuning. diff --git a/doc/ParallelOptimization.raw b/doc/ParallelOptimization.rst similarity index 100% rename from doc/ParallelOptimization.raw rename to doc/ParallelOptimization.rst diff --git a/doc/README.md b/doc/README.md deleted file mode 100644 index 84089931..00000000 --- a/doc/README.md +++ /dev/null @@ -1,5 +0,0 @@ -This directory contains further documentation. - -Some of the files contain `TeX` code and therefore need to be generated. So if you want to edit a markdown file that has a `.raw` counterpart, please edit the `raw` one and call `doc/gendocs.sh` from the project root. This will (re)generate the corresponding `.md` file. Please make sure to always commit both files. - -Note that you have to follow [this](https://github.com/leegao/readme2tex#installation) installation instructions first. diff --git a/doc/gendocs.sh b/doc/gendocs.sh deleted file mode 100755 index b99d0a2a..00000000 --- a/doc/gendocs.sh +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/sh - -set -xe - -python -m readme2tex --svgdir doc/svgs/ --username mozilla --project DeepSpeech --output doc/DeepSpeech.md doc/DeepSpeech.raw -python -m readme2tex --svgdir doc/svgs/ --username mozilla --project DeepSpeech --output doc/Geometry.md doc/Geometry.raw -python -m readme2tex --svgdir doc/svgs/ --username mozilla --project DeepSpeech --output doc/ParallelOptimization.md doc/ParallelOptimization.raw diff --git a/doc/svgs/0b8618b400785e741ea027ec23718169.svg b/doc/svgs/0b8618b400785e741ea027ec23718169.svg deleted file mode 100644 index e3502c01..00000000 --- a/doc/svgs/0b8618b400785e741ea027ec23718169.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/svgs/1741c589c4fdb782aa008664d3cf9bf7.svg b/doc/svgs/1741c589c4fdb782aa008664d3cf9bf7.svg deleted file mode 100644 index 83427554..00000000 --- a/doc/svgs/1741c589c4fdb782aa008664d3cf9bf7.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/svgs/1e46e5cdcab1a717717603eb80c5061b.svg b/doc/svgs/1e46e5cdcab1a717717603eb80c5061b.svg deleted file mode 100644 index 00891363..00000000 --- a/doc/svgs/1e46e5cdcab1a717717603eb80c5061b.svg +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/svgs/23776aad854f2d33e83e4f4cad44e1b9.svg b/doc/svgs/23776aad854f2d33e83e4f4cad44e1b9.svg deleted file mode 100644 index 8dbae9cf..00000000 --- a/doc/svgs/23776aad854f2d33e83e4f4cad44e1b9.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/doc/svgs/2566b4f99fd69f63a00f0abbc8415767.svg b/doc/svgs/2566b4f99fd69f63a00f0abbc8415767.svg deleted file mode 100644 index 0f0bb462..00000000 --- a/doc/svgs/2566b4f99fd69f63a00f0abbc8415767.svg +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/svgs/2ec6e630f199f589a2402fdf3e0289d5.svg b/doc/svgs/2ec6e630f199f589a2402fdf3e0289d5.svg deleted file mode 100644 index 6468fed0..00000000 --- a/doc/svgs/2ec6e630f199f589a2402fdf3e0289d5.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/doc/svgs/2f2322dff5bde89c37bcae4116fe20a8.svg b/doc/svgs/2f2322dff5bde89c37bcae4116fe20a8.svg deleted file mode 100644 index c426f915..00000000 --- a/doc/svgs/2f2322dff5bde89c37bcae4116fe20a8.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/doc/svgs/301d7bc34a1d89cb52b64ce4cf16322e.svg b/doc/svgs/301d7bc34a1d89cb52b64ce4cf16322e.svg deleted file mode 100644 index c4d8ac61..00000000 --- a/doc/svgs/301d7bc34a1d89cb52b64ce4cf16322e.svg +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/svgs/332cc365a4987aacce0ead01b8bdcc0b.svg b/doc/svgs/332cc365a4987aacce0ead01b8bdcc0b.svg deleted file mode 100644 index d8d3eda9..00000000 --- a/doc/svgs/332cc365a4987aacce0ead01b8bdcc0b.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/doc/svgs/3b3d517eaf7a36186d0f2c9bf921e14f.svg b/doc/svgs/3b3d517eaf7a36186d0f2c9bf921e14f.svg deleted file mode 100644 index 02056da6..00000000 --- a/doc/svgs/3b3d517eaf7a36186d0f2c9bf921e14f.svg +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/svgs/3f18d8f60c110e865571bba5ba67dcc6.svg b/doc/svgs/3f18d8f60c110e865571bba5ba67dcc6.svg deleted file mode 100644 index b5b76de2..00000000 --- a/doc/svgs/3f18d8f60c110e865571bba5ba67dcc6.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/svgs/3f623f5f39889e228ea730e85d8200bd.svg b/doc/svgs/3f623f5f39889e228ea730e85d8200bd.svg deleted file mode 100644 index 1a86af09..00000000 --- a/doc/svgs/3f623f5f39889e228ea730e85d8200bd.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/svgs/4187f3f834c6a9c9221fd863bd0da600.svg b/doc/svgs/4187f3f834c6a9c9221fd863bd0da600.svg deleted file mode 100644 index c6bcfa03..00000000 --- a/doc/svgs/4187f3f834c6a9c9221fd863bd0da600.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/svgs/4d56de33ada8539cfdcff54baea8310e.svg b/doc/svgs/4d56de33ada8539cfdcff54baea8310e.svg deleted file mode 100644 index fda6cc93..00000000 --- a/doc/svgs/4d56de33ada8539cfdcff54baea8310e.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/svgs/4f4f4e395762a3af4575de74c019ebb5.svg b/doc/svgs/4f4f4e395762a3af4575de74c019ebb5.svg deleted file mode 100644 index 37c22e18..00000000 --- a/doc/svgs/4f4f4e395762a3af4575de74c019ebb5.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/doc/svgs/5201385589993766eea584cd3aa6fa13.svg b/doc/svgs/5201385589993766eea584cd3aa6fa13.svg deleted file mode 100644 index 579ea431..00000000 --- a/doc/svgs/5201385589993766eea584cd3aa6fa13.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/doc/svgs/537fe6f40a03a282859c43fb7aa2874f.svg b/doc/svgs/537fe6f40a03a282859c43fb7aa2874f.svg deleted file mode 100644 index 795adcf7..00000000 --- a/doc/svgs/537fe6f40a03a282859c43fb7aa2874f.svg +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/svgs/5544c9e9f0c04f486d43b9a513f821f4.svg b/doc/svgs/5544c9e9f0c04f486d43b9a513f821f4.svg deleted file mode 100644 index 5a361371..00000000 --- a/doc/svgs/5544c9e9f0c04f486d43b9a513f821f4.svg +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/svgs/55a049b8f161ae7cfeb0197d75aff967.svg b/doc/svgs/55a049b8f161ae7cfeb0197d75aff967.svg deleted file mode 100644 index 5a17ec9e..00000000 --- a/doc/svgs/55a049b8f161ae7cfeb0197d75aff967.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/doc/svgs/5b71e9714fd57cbed1518f54d9674924.svg b/doc/svgs/5b71e9714fd57cbed1518f54d9674924.svg deleted file mode 100644 index cd46d359..00000000 --- a/doc/svgs/5b71e9714fd57cbed1518f54d9674924.svg +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/svgs/5dc642f297e291cfdde8982599601d7e.svg b/doc/svgs/5dc642f297e291cfdde8982599601d7e.svg deleted file mode 100644 index 7f5fd1f7..00000000 --- a/doc/svgs/5dc642f297e291cfdde8982599601d7e.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/doc/svgs/616b07a8d9f2b9a6cb5ebab869587fab.svg b/doc/svgs/616b07a8d9f2b9a6cb5ebab869587fab.svg deleted file mode 100644 index 32d08aa3..00000000 --- a/doc/svgs/616b07a8d9f2b9a6cb5ebab869587fab.svg +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/svgs/620afbde0635e244e162a8b0a2bcb9cb.svg b/doc/svgs/620afbde0635e244e162a8b0a2bcb9cb.svg deleted file mode 100644 index 0673a1ff..00000000 --- a/doc/svgs/620afbde0635e244e162a8b0a2bcb9cb.svg +++ /dev/null @@ -1,61 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/svgs/621ab064e859e3477fc9c023ef25de33.svg b/doc/svgs/621ab064e859e3477fc9c023ef25de33.svg deleted file mode 100644 index ab4d1171..00000000 --- a/doc/svgs/621ab064e859e3477fc9c023ef25de33.svg +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/svgs/63bb9849783d01d91403bc9a5fea12a2.svg b/doc/svgs/63bb9849783d01d91403bc9a5fea12a2.svg deleted file mode 100644 index 1ea103f4..00000000 --- a/doc/svgs/63bb9849783d01d91403bc9a5fea12a2.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/doc/svgs/77a3b857d53fb44e33b53e4c8b68351a.svg b/doc/svgs/77a3b857d53fb44e33b53e4c8b68351a.svg deleted file mode 100644 index 0b30ee9e..00000000 --- a/doc/svgs/77a3b857d53fb44e33b53e4c8b68351a.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/doc/svgs/7b79365abe0c9abfa5d858b170803f9c.svg b/doc/svgs/7b79365abe0c9abfa5d858b170803f9c.svg deleted file mode 100644 index ae7c5109..00000000 --- a/doc/svgs/7b79365abe0c9abfa5d858b170803f9c.svg +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/svgs/7ba8b2b4fec039363453efb55129fc6b.svg b/doc/svgs/7ba8b2b4fec039363453efb55129fc6b.svg deleted file mode 100644 index dcf09408..00000000 --- a/doc/svgs/7ba8b2b4fec039363453efb55129fc6b.svg +++ /dev/null @@ -1,54 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/svgs/821c06a38f428b87e586f7b26800c3af.svg b/doc/svgs/821c06a38f428b87e586f7b26800c3af.svg deleted file mode 100644 index 6056c76b..00000000 --- a/doc/svgs/821c06a38f428b87e586f7b26800c3af.svg +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/svgs/84c95f91a742c9ceb460a83f9b5090bf.svg b/doc/svgs/84c95f91a742c9ceb460a83f9b5090bf.svg deleted file mode 100644 index 3a015472..00000000 --- a/doc/svgs/84c95f91a742c9ceb460a83f9b5090bf.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/doc/svgs/866ca4413312fc41c943f3c4fbca73c1.svg b/doc/svgs/866ca4413312fc41c943f3c4fbca73c1.svg deleted file mode 100644 index bfb698c5..00000000 --- a/doc/svgs/866ca4413312fc41c943f3c4fbca73c1.svg +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/svgs/9612eecfec9dadf1a81d296bd2473777.svg b/doc/svgs/9612eecfec9dadf1a81d296bd2473777.svg deleted file mode 100644 index 71fbd50a..00000000 --- a/doc/svgs/9612eecfec9dadf1a81d296bd2473777.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/doc/svgs/977354073f08eeac0f95545d71c2b77a.svg b/doc/svgs/977354073f08eeac0f95545d71c2b77a.svg deleted file mode 100644 index 46dd90de..00000000 --- a/doc/svgs/977354073f08eeac0f95545d71c2b77a.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/svgs/99568e8e69332dfe7e459b1be0064905.svg b/doc/svgs/99568e8e69332dfe7e459b1be0064905.svg deleted file mode 100644 index 0cdcc06e..00000000 --- a/doc/svgs/99568e8e69332dfe7e459b1be0064905.svg +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/svgs/9b325b9e31e85137d1de765f43c0f8bc.svg b/doc/svgs/9b325b9e31e85137d1de765f43c0f8bc.svg deleted file mode 100644 index fe2012c5..00000000 --- a/doc/svgs/9b325b9e31e85137d1de765f43c0f8bc.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/doc/svgs/9e58ffe596dc1893dfbfad2efcf4d2a4.svg b/doc/svgs/9e58ffe596dc1893dfbfad2efcf4d2a4.svg deleted file mode 100644 index cee4650d..00000000 --- a/doc/svgs/9e58ffe596dc1893dfbfad2efcf4d2a4.svg +++ /dev/null @@ -1,59 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/svgs/9f326591601cc1a07f0590bbed3768d8.svg b/doc/svgs/9f326591601cc1a07f0590bbed3768d8.svg deleted file mode 100644 index 53256a6a..00000000 --- a/doc/svgs/9f326591601cc1a07f0590bbed3768d8.svg +++ /dev/null @@ -1,33 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/svgs/a16a13264cbafca76e1829d3e0765a69.svg b/doc/svgs/a16a13264cbafca76e1829d3e0765a69.svg deleted file mode 100644 index 1ee00b2a..00000000 --- a/doc/svgs/a16a13264cbafca76e1829d3e0765a69.svg +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/svgs/a36ac2d62f39ae1a8b5ef15a33913cbe.svg b/doc/svgs/a36ac2d62f39ae1a8b5ef15a33913cbe.svg deleted file mode 100644 index 0b533b09..00000000 --- a/doc/svgs/a36ac2d62f39ae1a8b5ef15a33913cbe.svg +++ /dev/null @@ -1,59 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/svgs/a762a11a67cb9ba897faa6c3cacedbbc.svg b/doc/svgs/a762a11a67cb9ba897faa6c3cacedbbc.svg deleted file mode 100644 index df2099c5..00000000 --- a/doc/svgs/a762a11a67cb9ba897faa6c3cacedbbc.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/svgs/ad769e751231d17313953f80471b27a4.svg b/doc/svgs/ad769e751231d17313953f80471b27a4.svg deleted file mode 100644 index 97ae9da9..00000000 --- a/doc/svgs/ad769e751231d17313953f80471b27a4.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/svgs/b05e38531483454a1d5ee778ad02b2f5.svg b/doc/svgs/b05e38531483454a1d5ee778ad02b2f5.svg deleted file mode 100644 index f0f62611..00000000 --- a/doc/svgs/b05e38531483454a1d5ee778ad02b2f5.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/svgs/b97650f5d17fe16c62e9b16a11767663.svg b/doc/svgs/b97650f5d17fe16c62e9b16a11767663.svg deleted file mode 100644 index 45a65c7e..00000000 --- a/doc/svgs/b97650f5d17fe16c62e9b16a11767663.svg +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/svgs/c51574e4f666a0701fd9e09d47458ba5.svg b/doc/svgs/c51574e4f666a0701fd9e09d47458ba5.svg deleted file mode 100644 index 3bc8af26..00000000 --- a/doc/svgs/c51574e4f666a0701fd9e09d47458ba5.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/svgs/d945d0d19d93957738ab47285585af55.svg b/doc/svgs/d945d0d19d93957738ab47285585af55.svg deleted file mode 100644 index 40e7d8d8..00000000 --- a/doc/svgs/d945d0d19d93957738ab47285585af55.svg +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/svgs/deceeaf6940a8c7a5a02373728002b0f.svg b/doc/svgs/deceeaf6940a8c7a5a02373728002b0f.svg deleted file mode 100644 index 6a8ee4c1..00000000 --- a/doc/svgs/deceeaf6940a8c7a5a02373728002b0f.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/doc/svgs/e04f274d8b6ee9ec252857546b8b73b5.svg b/doc/svgs/e04f274d8b6ee9ec252857546b8b73b5.svg deleted file mode 100644 index 08e187de..00000000 --- a/doc/svgs/e04f274d8b6ee9ec252857546b8b73b5.svg +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/svgs/e3955e81b908e83f304c8cb51fa01cdf.svg b/doc/svgs/e3955e81b908e83f304c8cb51fa01cdf.svg deleted file mode 100644 index 29298ddf..00000000 --- a/doc/svgs/e3955e81b908e83f304c8cb51fa01cdf.svg +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/svgs/e5f174df537eb831a8326efc975aa4b4.svg b/doc/svgs/e5f174df537eb831a8326efc975aa4b4.svg deleted file mode 100644 index 3dc8d886..00000000 --- a/doc/svgs/e5f174df537eb831a8326efc975aa4b4.svg +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/svgs/e7e30f89a8c77e163e112c244ba28bf2.svg b/doc/svgs/e7e30f89a8c77e163e112c244ba28bf2.svg deleted file mode 100644 index b1ce63fd..00000000 --- a/doc/svgs/e7e30f89a8c77e163e112c244ba28bf2.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/svgs/f1441afd023f38a19efe100013abeb0e.svg b/doc/svgs/f1441afd023f38a19efe100013abeb0e.svg deleted file mode 100644 index 03d6813b..00000000 --- a/doc/svgs/f1441afd023f38a19efe100013abeb0e.svg +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/svgs/f1484f55b33675c60d5cc8a5689ba737.svg b/doc/svgs/f1484f55b33675c60d5cc8a5689ba737.svg deleted file mode 100644 index 852ef5fc..00000000 --- a/doc/svgs/f1484f55b33675c60d5cc8a5689ba737.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/svgs/f559f3f08ccdab2e684d621045c067e7.svg b/doc/svgs/f559f3f08ccdab2e684d621045c067e7.svg deleted file mode 100644 index d8aa150a..00000000 --- a/doc/svgs/f559f3f08ccdab2e684d621045c067e7.svg +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/svgs/f8a131f8ae97558cd5a81df2db955b0f.svg b/doc/svgs/f8a131f8ae97558cd5a81df2db955b0f.svg deleted file mode 100644 index aaad21a1..00000000 --- a/doc/svgs/f8a131f8ae97558cd5a81df2db955b0f.svg +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/svgs/f99b9a2c90cd48431a7372de2cf47523.svg b/doc/svgs/f99b9a2c90cd48431a7372de2cf47523.svg deleted file mode 100644 index b8c25db3..00000000 --- a/doc/svgs/f99b9a2c90cd48431a7372de2cf47523.svg +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - - - - - - - - \ No newline at end of file