|
10 | 10 | 1. [Specifications](#specifications) |
11 | 11 | 2. [Out of scope](#out-of-scope) |
12 | 12 | 3. [Proposal](#proposal) |
| 13 | + 3. [Special cases](#special-cases) |
13 | 14 | 4. [Demos](#demos) |
14 | 15 | 5. [Implementation details](#implementation-details) |
15 | 16 | 6. [Alternatives considered](#alternatives-considered) |
@@ -124,6 +125,9 @@ The proposed solution can optionally support the following nice-to-haves: |
124 | 125 | 2. We focus on the public API and not on implementation details. Though the repo contains private helper methods used to |
125 | 126 | [construct models](https://github.com/datumbox/dapi-model-versioning/blob/main/dapi_lib/models/resnet.py#L19-L43), |
126 | 127 | these are not part of the proposal and libraries can adapt them to their needs and current practices. |
| 128 | +3. We try to keep this RFC not too opinionated but rather describe a framework that gives to the DAPI libs the space to |
| 129 | + adapt the solution on their needs. As a result, fully specifying implementation details is beyond the scope of this |
| 130 | + proposal. |
127 | 131 |
|
128 | 132 | ### Proposal |
129 | 133 |
|
@@ -183,6 +187,16 @@ The above approach: |
183 | 187 | - Covers all mandatory criteria. |
184 | 188 | - Supports all the nice-to-haves. |
185 | 189 |
|
| 190 | +### Special cases |
| 191 | + |
| 192 | +This section provides some guidance on how to handle special cases that were brought up during the review of the RFC. |
| 193 | +When multiple valid options exist, the DAPI libs should choose the one that meets their needs best: |
| 194 | +- If a model requires both pre-processing and post-processing transforms, there are two main options: |
| 195 | + 1. We can add both of them in a single transformer class, which will expose 2 public methods one for `preprocessing` |
| 196 | + and one for `postprocessing`. |
| 197 | + 2. We can provide two separate transformer classes which will implement `preprocessing` and `postprocessing` on their |
| 198 | + `forward()`/`__call()__` method. Then we will offer two separate fields for them on the `Enum` class. |
| 199 | + |
186 | 200 | ### Demos |
187 | 201 |
|
188 | 202 | To prove that the proposed API can accommodate all domains, we implemented it to 4 real-world models. To see the demos |
|
0 commit comments