本文整理汇总了Python中cloudpickle.__version__方法的典型用法代码示例。如果您正苦于以下问题:Python cloudpickle.__version__方法的具体用法?Python cloudpickle.__version__怎么用?Python cloudpickle.__version__使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类cloudpickle
的用法示例。
在下文中一共展示了cloudpickle.__version__方法的14个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: get_args
# 需要导入模块: import cloudpickle [as 别名]
# 或者: from cloudpickle import __version__ [as 别名]
def get_args(key=None, default=None):
args = __get_arg_config()
if args.args_data:
if args.use_cloudpickle:
import cloudpickle
assert args.cloudpickle_version == cloudpickle.__version__, "Cloudpickle versions do not match! (host) %s vs (remote) %s" % (args.cloudpickle_version, cloudpickle.__version__)
data = cloudpickle.loads(base64.b64decode(args.args_data))
else:
data = pickle.loads(base64.b64decode(args.args_data))
else:
data = {}
if key is not None:
return data.get(key, default)
return data
示例2: encode_args
# 需要导入模块: import cloudpickle [as 别名]
# 或者: from cloudpickle import __version__ [as 别名]
def encode_args(call_args, cloudpickle=False):
"""
Encode call_args dictionary as a base64 string
"""
assert isinstance(call_args, dict)
if cloudpickle:
import cloudpickle
cpickle_version = cloudpickle.__version__
data = base64.b64encode(cloudpickle.dumps(call_args)).decode("utf-8")
else:
data = base64.b64encode(pickle.dumps(call_args)).decode("utf-8")
cpickle_version = 'n/a'
return data, cpickle_version
# These are arguments passed in from launch_python
示例3: _load_model
# 需要导入模块: import cloudpickle [as 别名]
# 或者: from cloudpickle import __version__ [as 别名]
def _load_model(model_path, keras_module, **kwargs):
keras_models = importlib.import_module(keras_module.__name__ + ".models")
custom_objects = kwargs.pop("custom_objects", {})
custom_objects_path = None
if os.path.isdir(model_path):
if os.path.isfile(os.path.join(model_path, _CUSTOM_OBJECTS_SAVE_PATH)):
custom_objects_path = os.path.join(model_path, _CUSTOM_OBJECTS_SAVE_PATH)
model_path = os.path.join(model_path, _MODEL_SAVE_PATH)
if custom_objects_path is not None:
import cloudpickle
with open(custom_objects_path, "rb") as in_f:
pickled_custom_objects = cloudpickle.load(in_f)
pickled_custom_objects.update(custom_objects)
custom_objects = pickled_custom_objects
from distutils.version import StrictVersion
if StrictVersion(keras_module.__version__.split('-')[0]) >= StrictVersion("2.2.3"):
# NOTE: Keras 2.2.3 does not work with unicode paths in python2. Pass in h5py.File instead
# of string to avoid issues.
import h5py
with h5py.File(os.path.abspath(model_path), "r") as model_path:
return keras_models.load_model(model_path, custom_objects=custom_objects, **kwargs)
else:
# NOTE: Older versions of Keras only handle filepath.
return keras_models.load_model(model_path, custom_objects=custom_objects, **kwargs)
示例4: get_default_conda_env
# 需要导入模块: import cloudpickle [as 别名]
# 或者: from cloudpickle import __version__ [as 别名]
def get_default_conda_env(include_cloudpickle=False):
"""
:return: The default Conda environment for MLflow Models produced by calls to
:func:`save_model()` and :func:`log_model()`.
"""
import fastai
pip_deps = None
if include_cloudpickle:
import cloudpickle
pip_deps = ["cloudpickle=={}".format(cloudpickle.__version__)]
return _mlflow_conda_env(
additional_conda_deps=[
"fastai={}".format(fastai.__version__),
],
additional_pip_deps=pip_deps,
additional_conda_channels=None
)
示例5: get_default_conda_env
# 需要导入模块: import cloudpickle [as 别名]
# 或者: from cloudpickle import __version__ [as 别名]
def get_default_conda_env():
"""
:return: The default Conda environment for MLflow Models produced by calls to
:func:`save_model()` and :func:`log_model()`.
"""
import torch
import torchvision
return _mlflow_conda_env(
additional_conda_deps=[
"pytorch={}".format(torch.__version__),
"torchvision={}".format(torchvision.__version__),
],
additional_pip_deps=[
# We include CloudPickle in the default environment because
# it's required by the default pickle module used by `save_model()`
# and `log_model()`: `mlflow.pytorch.pickle_module`.
"cloudpickle=={}".format(cloudpickle.__version__)
],
additional_conda_channels=[
"pytorch",
])
示例6: get_default_conda_env
# 需要导入模块: import cloudpickle [as 别名]
# 或者: from cloudpickle import __version__ [as 别名]
def get_default_conda_env(include_cloudpickle=False):
"""
:return: The default Conda environment for MLflow Models produced by calls to
:func:`save_model()` and :func:`log_model()`.
"""
import sklearn
pip_deps = None
if include_cloudpickle:
import cloudpickle
pip_deps = ["cloudpickle=={}".format(cloudpickle.__version__)]
return _mlflow_conda_env(
additional_conda_deps=[
"scikit-learn={}".format(sklearn.__version__),
],
additional_pip_deps=pip_deps,
additional_conda_channels=None
)
示例7: dumps_with_help
# 需要导入模块: import cloudpickle [as 别名]
# 或者: from cloudpickle import __version__ [as 别名]
def dumps_with_help(obj):
if cloudpickle.__version__ != '0.5.2':
raise RuntimeError(
'cloudpickle version 0.5.2 is required, please run `pip install cloudpickle==0.5.2`')
try:
return cloudpickle.dumps(obj)
except Exception:
raise RuntimeError(
'Failed to cloudpickle %s. Possible fixes: (1) remove super() from yours script.' % obj)
示例8: get_default_conda_env
# 需要导入模块: import cloudpickle [as 别名]
# 或者: from cloudpickle import __version__ [as 别名]
def get_default_conda_env(include_cloudpickle=False, keras_module=None):
"""
:return: The default Conda environment for MLflow Models produced by calls to
:func:`save_model()` and :func:`log_model()`.
"""
import tensorflow as tf
conda_deps = [] # if we use tf.keras we only need to declare dependency on tensorflow
pip_deps = []
if keras_module is None:
import keras
keras_module = keras
if keras_module.__name__ == "keras":
# Temporary fix: the created conda environment has issues installing keras >= 2.3.1
if LooseVersion(keras_module.__version__) < LooseVersion('2.3.1'):
conda_deps.append("keras=={}".format(keras_module.__version__))
else:
pip_deps.append("keras=={}".format(keras_module.__version__))
if include_cloudpickle:
import cloudpickle
pip_deps.append("cloudpickle=={}".format(cloudpickle.__version__))
# Temporary fix: conda-forge currently does not have tensorflow > 1.14
# The Keras pyfunc representation requires the TensorFlow
# backend for Keras. Therefore, the conda environment must
# include TensorFlow
if LooseVersion(tf.__version__) <= LooseVersion('1.13.2'):
conda_deps.append("tensorflow=={}".format(tf.__version__))
else:
pip_deps.append("tensorflow=={}".format(tf.__version__))
return _mlflow_conda_env(
additional_conda_deps=conda_deps,
additional_pip_deps=pip_deps,
additional_conda_channels=None)
示例9: _load_pyfunc
# 需要导入模块: import cloudpickle [as 别名]
# 或者: from cloudpickle import __version__ [as 别名]
def _load_pyfunc(path):
"""
Load PyFunc implementation. Called by ``pyfunc.load_pyfunc``.
:param path: Local filesystem path to the MLflow Model with the ``keras`` flavor.
"""
import tensorflow as tf
if os.path.isfile(os.path.join(path, _KERAS_MODULE_SPEC_PATH)):
with open(os.path.join(path, _KERAS_MODULE_SPEC_PATH), "r") as f:
keras_module = importlib.import_module(f.read())
else:
import keras
keras_module = keras
K = importlib.import_module(keras_module.__name__ + ".backend")
if keras_module.__name__ == "tensorflow.keras" or K.backend() == 'tensorflow':
if LooseVersion(tf.__version__) < LooseVersion('2.0.0'):
graph = tf.Graph()
sess = tf.Session(graph=graph)
# By default tf backed models depend on the global graph and session.
# We create an use new Graph and Session and store them with the model
# This way the model is independent on the global state.
with graph.as_default():
with sess.as_default(): # pylint:disable=not-context-manager
K.set_learning_phase(0)
m = _load_model(path, keras_module=keras_module, compile=False)
return _KerasModelWrapper(m, graph, sess)
else:
K.set_learning_phase(0)
m = _load_model(path, keras_module=keras_module, compile=False)
return _KerasModelWrapper(m, None, None)
else:
raise MlflowException("Unsupported backend '%s'" % K._BACKEND)
示例10: get_default_conda_env
# 需要导入模块: import cloudpickle [as 别名]
# 或者: from cloudpickle import __version__ [as 别名]
def get_default_conda_env():
"""
:return: The default Conda environment for MLflow Models produced by calls to
:func:`save_model() <mlflow.pyfunc.save_model>`
and :func:`log_model() <mlflow.pyfunc.log_model>` when a user-defined subclass of
:class:`PythonModel` is provided.
"""
return _mlflow_conda_env(
additional_conda_deps=None,
additional_pip_deps=[
"cloudpickle=={}".format(cloudpickle.__version__),
],
additional_conda_channels=None)
示例11: _load_pyfunc
# 需要导入模块: import cloudpickle [as 别名]
# 或者: from cloudpickle import __version__ [as 别名]
def _load_pyfunc(model_path):
pyfunc_config = _get_flavor_configuration(
model_path=model_path, flavor_name=mlflow.pyfunc.FLAVOR_NAME)
python_model_cloudpickle_version = pyfunc_config.get(CONFIG_KEY_CLOUDPICKLE_VERSION, None)
if python_model_cloudpickle_version is None:
mlflow.pyfunc._logger.warning(
"The version of CloudPickle used to save the model could not be found in the MLmodel"
" configuration")
elif python_model_cloudpickle_version != cloudpickle.__version__:
# CloudPickle does not have a well-defined cross-version compatibility policy. Micro version
# releases have been known to cause incompatibilities. Therefore, we match on the full
# library version
mlflow.pyfunc._logger.warning(
"The version of CloudPickle that was used to save the model, `CloudPickle %s`, differs"
" from the version of CloudPickle that is currently running, `CloudPickle %s`, and may"
" be incompatible",
python_model_cloudpickle_version, cloudpickle.__version__)
python_model_subpath = pyfunc_config.get(CONFIG_KEY_PYTHON_MODEL, None)
if python_model_subpath is None:
raise MlflowException(
"Python model path was not specified in the model configuration")
with open(os.path.join(model_path, python_model_subpath), "rb") as f:
python_model = cloudpickle.load(f)
artifacts = {}
for saved_artifact_name, saved_artifact_info in\
pyfunc_config.get(CONFIG_KEY_ARTIFACTS, {}).items():
artifacts[saved_artifact_name] = os.path.join(
model_path, saved_artifact_info[CONFIG_KEY_ARTIFACT_RELATIVE_PATH])
context = PythonModelContext(artifacts=artifacts)
python_model.load_context(context=context)
return _PythonModelPyfuncWrapper(python_model=python_model, context=context)
示例12: _conda_env
# 需要导入模块: import cloudpickle [as 别名]
# 或者: from cloudpickle import __version__ [as 别名]
def _conda_env():
# NB: We need mlflow as a dependency in the environment.
return _mlflow_conda_env(
additional_conda_deps=None,
install_mlflow=False,
additional_pip_deps=[
"-e " + os.path.dirname(mlflow.__path__[0]),
"cloudpickle=={}".format(cloudpickle.__version__),
"scikit-learn=={}".format(sklearn.__version__)
],
additional_conda_channels=None)
示例13: test_load_model_with_differing_cloudpickle_version_at_micro_granularity_logs_warning
# 需要导入模块: import cloudpickle [as 别名]
# 或者: from cloudpickle import __version__ [as 别名]
def test_load_model_with_differing_cloudpickle_version_at_micro_granularity_logs_warning(
model_path):
class TestModel(mlflow.pyfunc.PythonModel):
def predict(self, context, model_input):
return model_input
mlflow.pyfunc.save_model(path=model_path, python_model=TestModel())
saver_cloudpickle_version = "0.5.8"
model_config_path = os.path.join(model_path, "MLmodel")
model_config = Model.load(model_config_path)
model_config.flavors[mlflow.pyfunc.FLAVOR_NAME][
mlflow.pyfunc.model.CONFIG_KEY_CLOUDPICKLE_VERSION] = saver_cloudpickle_version
model_config.save(model_config_path)
log_messages = []
def custom_warn(message_text, *args, **kwargs):
log_messages.append(message_text % args % kwargs)
loader_cloudpickle_version = "0.5.7"
with mock.patch("mlflow.pyfunc._logger.warning") as warn_mock, \
mock.patch("cloudpickle.__version__") as cloudpickle_version_mock:
cloudpickle_version_mock.__str__ = lambda *args, **kwargs: loader_cloudpickle_version
warn_mock.side_effect = custom_warn
mlflow.pyfunc.load_pyfunc(model_uri=model_path)
assert any([
"differs from the version of CloudPickle that is currently running" in log_message and
saver_cloudpickle_version in log_message and
loader_cloudpickle_version in log_message
for log_message in log_messages
])
示例14: log_explanation
# 需要导入模块: import cloudpickle [as 别名]
# 或者: from cloudpickle import __version__ [as 别名]
def log_explanation(name, explanation):
"""Log the explanation to MLflow using MLflow model logging.
:param name: The name of the explanation. Will be used as a directory name.
:type name: str
:param explanation: The explanation object to log.
:type explanation: Explanation
"""
try:
from mlflow.models import Model
except ImportError as e:
raise Exception("Could not log_explanation to mlflow. Missing mlflow dependency, "
"pip install mlflow to resolve the error: {}.".format(e))
import cloudpickle as pickle
with TemporaryDirectory() as tempdir:
path = os.path.join(tempdir, 'explanation')
save_explanation(explanation, path, exist_ok=True)
conda_env = {
"name": "mlflow-env",
"channels": ["defaults"],
"dependencies": [
"pip",
{
"pip": [
"interpret-community=={}".format(interpret_community.__version__),
"cloudpickle=={}".format(pickle.__version__)]
}
]
}
conda_path = os.path.join(tempdir, "conda.yaml")
with open(conda_path, "w") as stream:
yaml.dump(conda_env, stream)
kwargs = {'interpret_community_metadata': _get_explanation_metadata(explanation)}
Model.log(name,
flavor=interpret_community.mlflow,
loader_module='interpret_community.mlflow',
data_path=path,
conda_env=conda_path,
**kwargs)