deepimagej / models

4 stars 5 forks source link

Update bioimageio collection #39

Closed FynnBe closed 2 years ago

FynnBe commented 2 years ago

Some updates to make the collection rdf (aka manifest) pass static validation. Not all listed resources pass validation with this PR, but now the static errors are more informative. Following PRs can tackle the individual failing resources individually and once #38 is merged the status of the collection RDF can be monitored continuously.

remaining issues after this PR:

$bioimageio validate manifest.bioimage.io.yaml
bioimageio.spec 0.4.3
implementing:
        collection RDF 0.2.2
        general RDF 0.2.2
        model RDF 0.4.3
bioimageio.core 0.4.10
Error in deepImageJ Collection:
{'collection': {8: {'authors': {0: {'name': ['Not a valid string.']},
                                1: {'name': ['Not a valid string.']}}},
                10: {'authors': {0: {'affiliation': ['Field may not be null.']},
                                 1: {'affiliation': ['Field may not be null.']},
                                 2: {'affiliation': ['Field may not be '
                                                     'null.']}},
                     'cite': ['Field may not be null.'],
                     'date': ['Unknown field.'],
                     'framework': ['Must be one of: pytorch, tensorflow.'],
                     'inputs': {0: {'preprocessing': ['Not a valid list.']}},
                     'language': ['Must be one of: python, java.'],
                     'test_inputs': ['Missing data for required field.'],
                     'test_outputs': ['Missing data for required field.'],
                     'weights': {'tensorflow_js': {'value': ['Errors in all '
                                                             'options for this '
                                                             'field. Fix any '
                                                             'of the following '
                                                             'errors:',
                                                             {'format': ['Unknown '
                                                                         'field.'],
                                                              'name': ['Unknown '
                                                                       'field.']},
                                                             {'format': ['Unknown '
                                                                         'field.'],
                                                              'name': ['Unknown '
                                                                       'field.'],
                                                              'weights_format': ['Must '
                                                                                 'be '
                                                                                 'equal '
                                                                                 'to '
                                                                                 'pytorch_state_dict.']},
                                                             {'format': ['Unknown '
                                                                         'field.'],
                                                              'name': ['Unknown '
                                                                       'field.'],
                                                              'weights_format': ['Must '
                                                                                 'be '
                                                                                 'equal '
                                                                                 'to '
                                                                                 'pytorch_script.']},
                                                             {'format': ['Unknown '
                                                                         'field.'],
                                                              'name': ['Unknown '
                                                                       'field.'],
                                                              'weights_format': ['Must '
                                                                                 'be '
                                                                                 'equal '
                                                                                 'to '
                                                                                 'keras_hdf5.']},
                                                             {'format': ['Unknown '
                                                                         'field.'],
                                                              'name': ['Unknown '
                                                                       'field.'],
                                                              'weights_format': ['Must '
                                                                                 'be '
                                                                                 'equal '
                                                                                 'to '
                                                                                 'tensorflow_saved_model_bundle.']},
                                                             {'format': ['Unknown '
                                                                         'field.'],
                                                              'name': ['Unknown '
                                                                       'field.'],
                                                              'weights_format': ['Must '
                                                                                 'be '
                                                                                 'equal '
                                                                                 'to '
                                                                                 'onnx.']}]}}},
                11: {'run_mode': ['Expected dictionary, but got list.'],
                     'test_inputs': ['Missing data for required field.'],
                     'test_outputs': ['Missing data for required field.']},
                13: {'run_mode': ['Expected dictionary, but got list.']},
                19: {'weights': {'tensorflow_saved_model_bundle': {'value': ['Errors '
                                                                             'in '
                                                                             'all '
                                                                             'options '
                                                                             'for '
                                                                             'this '
                                                                             'field. '
                                                                             'Fix '
                                                                             'any '
                                                                             'of '
                                                                             'the '
                                                                             'following '
                                                                             'errors:',
                                                                             {'authors': {0: ['Expected '
                                                                                              'dictionary, '
                                                                                              'but '
                                                                                              'got '
                                                                                              'str.']}},
                                                                             {'authors': {0: ['Expected '
                                                                                              'dictionary, '
                                                                                              'but '
                                                                                              'got '
                                                                                              'str.']},
                                                                              'weights_format': ['Must '
                                                                                                 'be '
                                                                                                 'equal '
                                                                                                 'to '
                                                                                                 'pytorch_state_dict.']},
                                                                             {'authors': {0: ['Expected '
                                                                                              'dictionary, '
                                                                                              'but '
                                                                                              'got '
                                                                                              'str.']},
                                                                              'weights_format': ['Must '
                                                                                                 'be '
                                                                                                 'equal '
                                                                                                 'to '
                                                                                                 'pytorch_script.']},
                                                                             {'authors': {0: ['Expected '
                                                                                              'dictionary, '
                                                                                              'but '
                                                                                              'got '
                                                                                              'str.']},
                                                                              'weights_format': ['Must '
                                                                                                 'be '
                                                                                                 'equal '
                                                                                                 'to '
                                                                                                 'keras_hdf5.']},
                                                                             {'authors': {0: ['Expected '
                                                                                              'dictionary, '
                                                                                              'but '
                                                                                              'got '
                                                                                              'str.']},
                                                                              'weights_format': ['Must '
                                                                                                 'be '
                                                                                                 'equal '
                                                                                                 'to '
                                                                                                 'tensorflow_js.']},
                                                                             {'authors': {0: ['Expected '
                                                                                              'dictionary, '
                                                                                              'but '
                                                                                              'got '
                                                                                              'str.']},
                                                                              'weights_format': ['Must '
                                                                                                 'be '
                                                                                                 'equal '
                                                                                                 'to '
                                                                                                 'onnx.']}]}}},
                20: {'run_mode': ['Expected dictionary, but got list.']},
                21: {'run_mode': ['Expected dictionary, but got list.']},
                22: {'inputs': {0: {'data_range': ['Not a valid tuple.'],
                                    'preprocessing': {0: {'name': ['Missing '
                                                                   'data for '
                                                                   'required '
                                                                   'field.'],
                                                          'scale_range': ['Unknown '
                                                                          'field.']}}}},
                     'language': ['Must be one of: python, java.'],
                     'outputs': {0: {'data_range': ['Not a valid tuple.']}},
                     'packaged_by': {0: ['Expected dictionary, but got str.']},
                     'weights': {'keras_hdf5': {'value': ['Errors in all '
                                                          'options for this '
                                                          'field. Fix any of '
                                                          'the following '
                                                          'errors:',
                                                          {'authors': {0: ['Expected '
                                                                           'dictionary, '
                                                                           'but '
                                                                           'got '
                                                                           'str.']}},
                                                          {'authors': {0: ['Expected '
                                                                           'dictionary, '
                                                                           'but '
                                                                           'got '
                                                                           'str.']},
                                                           'weights_format': ['Must '
                                                                              'be '
                                                                              'equal '
                                                                              'to '
                                                                              'pytorch_state_dict.']},
                                                          {'authors': {0: ['Expected '
                                                                           'dictionary, '
                                                                           'but '
                                                                           'got '
                                                                           'str.']},
                                                           'weights_format': ['Must '
                                                                              'be '
                                                                              'equal '
                                                                              'to '
                                                                              'pytorch_script.']},
                                                          {'authors': {0: ['Expected '
                                                                           'dictionary, '
                                                                           'but '
                                                                           'got '
                                                                           'str.']},
                                                           'weights_format': ['Must '
                                                                              'be '
                                                                              'equal '
                                                                              'to '
                                                                              'tensorflow_js.']},
                                                          {'authors': {0: ['Expected '
                                                                           'dictionary, '
                                                                           'but '
                                                                           'got '
                                                                           'str.']},
                                                           'weights_format': ['Must '
                                                                              'be '
                                                                              'equal '
                                                                              'to '
                                                                              'tensorflow_saved_model_bundle.']},
                                                          {'authors': {0: ['Expected '
                                                                           'dictionary, '
                                                                           'but '
                                                                           'got '
                                                                           'str.']},
                                                           'weights_format': ['Must '
                                                                              'be '
                                                                              'equal '
                                                                              'to '
                                                                              'onnx.']}]},
                                 'tensorflow_saved_model_bundle': {'value': ['Errors '
                                                                             'in '
                                                                             'all '
                                                                             'options '
                                                                             'for '
                                                                             'this '
                                                                             'field. '
                                                                             'Fix '
                                                                             'any '
                                                                             'of '
                                                                             'the '
                                                                             'following '
                                                                             'errors:',
                                                                             {'authors': {0: ['Expected '
                                                                                              'dictionary, '
                                                                                              'but '
                                                                                              'got '
                                                                                              'str.']}},
                                                                             {'authors': {0: ['Expected '
                                                                                              'dictionary, '
                                                                                              'but '
                                                                                              'got '
                                                                                              'str.']},
                                                                              'weights_format': ['Must '
                                                                                                 'be '
                                                                                                 'equal '
                                                                                                 'to '
                                                                                                 'pytorch_state_dict.']},
                                                                             {'authors': {0: ['Expected '
                                                                                              'dictionary, '
                                                                                              'but '
                                                                                              'got '
                                                                                              'str.']},
                                                                              'weights_format': ['Must '
                                                                                                 'be '
                                                                                                 'equal '
                                                                                                 'to '
                                                                                                 'pytorch_script.']},
                                                                             {'authors': {0: ['Expected '
                                                                                              'dictionary, '
                                                                                              'but '
                                                                                              'got '
                                                                                              'str.']},
                                                                              'weights_format': ['Must '
                                                                                                 'be '
                                                                                                 'equal '
                                                                                                 'to '
                                                                                                 'keras_hdf5.']},
                                                                             {'authors': {0: ['Expected '
                                                                                              'dictionary, '
                                                                                              'but '
                                                                                              'got '
                                                                                              'str.']},
                                                                              'weights_format': ['Must '
                                                                                                 'be '
                                                                                                 'equal '
                                                                                                 'to '
                                                                                                 'tensorflow_js.']},
                                                                             {'authors': {0: ['Expected '
                                                                                              'dictionary, '
                                                                                              'but '
                                                                                              'got '
                                                                                              'str.']},
                                                                              'weights_format': ['Must '
                                                                                                 'be '
                                                                                                 'equal '
                                                                                                 'to '
                                                                                                 'onnx.']}]}}}}}
Validation Warnings for deepImageJ Collection:
{'collection': {0: {'type': '(id=deepimagej-web) Unrecognized type '
                            "'application'. Validating as rdf."},
                1: {'type': "(id=deepimagej) Unrecognized type 'application'. "
                            'Validating as rdf.'},
                2: {'type': '(id=unet-pancreaticcellsegmentation) Unrecognized '
                            "type 'application'. Validating as rdf."},
                3: {'type': '(id=smlm-deepimagej) Unrecognized type '
                            "'application'. Validating as rdf."},
                4: {'type': '(id=EVsTEMsegmentationFRUNet) Unrecognized type '
                            "'application'. Validating as rdf."},
                5: {'type': '(id=MoNuSeg_digital_pathology_miccai2018) '
                            "Unrecognized type 'dataset'. Validating as rdf."},
                7: {'license': '(id=UNet2DHeLaSegmentation) BSD-2 is not a '
                               'recognized SPDX license identifier. See '
                               'https://spdx.org/licenses/'},
                8: {'license': '(id=UNet2DPancreaticSegmentation) BSD-2 is not '
                               'a recognized SPDX license identifier. See '
                               'https://spdx.org/licenses/'},
                9: {'license': '(id=UNet2DGlioblastomaSegmentation) BSD-2 is '
                               'not a recognized SPDX license identifier. See '
                               'https://spdx.org/licenses/'},
                10: {'license': '(id=SMLMDensityMapEstimationDEFCoN) BSD-3 is '
                                'not a recognized SPDX license identifier. See '
                                'https://spdx.org/licenses/'},
                14: {'license': '(id=WidefieldTxredSuperResolution) CC BY 4.0 '
                                'is not a recognized SPDX license identifier. '
                                'See https://spdx.org/licenses/'},
                17: {'license': '(id=JonesVirtualStaining) CC BY 4.0 is not a '
                                'recognized SPDX license identifier. See '
                                'https://spdx.org/licenses/'},
                20: {'license': '(id=SkinLesionClassification) BSD2 is not a '
                                'recognized SPDX license identifier. See '
                                'https://spdx.org/licenses/'}}}