Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Устранение ошибки
При использовании Машинного обучения Azure может возникнуть одна из следующих ошибок:
TypeError: Descriptors cannot not be created directly. If this call came from a _pb2.py file, your generated code is out of date and must be regenerated with protoc >= 3.19.0." It is followed by the proposition to install the appropriate version of protobuf library.
If you cannot immediately regenerate your protos, some other possible workarounds are:
1. Downgrade the protobuf package to 3.20.x or lower.
2. Set PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python (but this will use pure-Python parsing and will be much slower).
В частности, эту ошибку можно заметить при использовании AutoML.
Причина
Эта проблема вызвана критическими изменениями, введенными в protobuf 4.0.0. Дополнительные сведения см. в разделе https://developers.google.com/protocol-buffers/docs/news/2022-05-06#python-updates.
Разрешение
Для локальной среды разработки или вычислительного экземпляра установите пакет SDK Машинного обучения Azure версии 1.42.0.post1 или более поздней.
pip install azureml-sdk[automl,explain,notebooks]>=1.42.0
Дополнительные сведения об обновлении среды Машинного обучения Azure (для обучения или развертывания) см. в следующих статьях:
Чтобы проверить версию установленного пакета SDK, используйте следующую команду:
pip show azureml-core
Эта команда возвращает информацию, аналогичную Version: 1.42.0.post1
.
Совет
Если вы не можете обновить установку пакета SDK для Машинное обучение Azure, можно закрепить версию protobuf в среде 3.20.1
. В следующем примере показан файл conda.yml
, демонстрирующий закрепление версии:
name: model-env
channels:
- conda-forge
dependencies:
- python=3.8
- numpy=1.21.2
- pip=21.2.4
- scikit-learn=0.24.2
- scipy=1.7.1
- pandas>=1.1,<1.2
- pip:
- inference-schema[numpy-support]==1.3.0
- xlrd==2.0.1
- mlflow== 1.26.0
- azureml-mlflow==1.41.0
- protobuf==3.20.1
Следующие шаги
Дополнительные сведения о критических изменениях в protobuf 4.0.0 см. в разделе https://developers.google.com/protocol-buffers/docs/news/2022-05-06#python-updates.
Дополнительные сведения об обновлении среды Машинного обучения Azure (для обучения или развертывания) см. в следующих статьях: