Module keras.api.keras.applications.imagenet_utils
Public API for tf.keras.applications.imagenet_utils namespace.
Expand source code
# This file is MACHINE GENERATED! Do not edit.
# Generated by: tensorflow/python/tools/api/generator/create_python_api.py script.
"""Public API for tf.keras.applications.imagenet_utils namespace.
"""
from __future__ import print_function as _print_function
import sys as _sys
from keras.applications.imagenet_utils import decode_predictions
from keras.applications.imagenet_utils import preprocess_input
del _print_function
from tensorflow.python.util import module_wrapper as _module_wrapper
if not isinstance(_sys.modules[__name__], _module_wrapper.TFModuleWrapper):
_sys.modules[__name__] = _module_wrapper.TFModuleWrapper(
_sys.modules[__name__], "keras.applications.imagenet_utils", public_apis=None, deprecation=True,
has_lite=False)
Functions
def decode_predictions(preds, top=5)
-
Decodes the prediction of an ImageNet model.
Args
preds
- Numpy array encoding a batch of predictions.
top
- Integer, how many top-guesses to return. Defaults to 5.
Returns
A list of lists of top class prediction tuples
(class_name, class_description, score)
. One list of tuples per sample in batch input.Raises
ValueError
- In case of invalid shape of the
pred
array (must be 2D).
Expand source code
@keras_export('keras.applications.imagenet_utils.decode_predictions') def decode_predictions(preds, top=5): """Decodes the prediction of an ImageNet model. Args: preds: Numpy array encoding a batch of predictions. top: Integer, how many top-guesses to return. Defaults to 5. Returns: A list of lists of top class prediction tuples `(class_name, class_description, score)`. One list of tuples per sample in batch input. Raises: ValueError: In case of invalid shape of the `pred` array (must be 2D). """ global CLASS_INDEX if len(preds.shape) != 2 or preds.shape[1] != 1000: raise ValueError('`decode_predictions` expects ' 'a batch of predictions ' '(i.e. a 2D array of shape (samples, 1000)). ' 'Found array with shape: ' + str(preds.shape)) if CLASS_INDEX is None: fpath = data_utils.get_file( 'imagenet_class_index.json', CLASS_INDEX_PATH, cache_subdir='models', file_hash='c2c37ea517e94d9795004a39431a14cb') with open(fpath) as f: CLASS_INDEX = json.load(f) results = [] for pred in preds: top_indices = pred.argsort()[-top:][::-1] result = [tuple(CLASS_INDEX[str(i)]) + (pred[i],) for i in top_indices] result.sort(key=lambda x: x[2], reverse=True) results.append(result) return results
def preprocess_input(x, data_format=None, mode='caffe')
-
Preprocesses a tensor or Numpy array encoding a batch of images.
Usage example with
applications.MobileNet
:i = tf.keras.layers.Input([None, None, 3], dtype = tf.uint8) x = tf.cast(i, tf.float32) x = tf.keras.applications.mobilenet.preprocess_input(x) core = tf.keras.applications.MobileNet() x = core(x) model = tf.keras.Model(inputs=[i], outputs=[x]) image = tf.image.decode_png(tf.io.read_file('file.png')) result = model(image)
Args
x
- A floating point
numpy.array
or atf.Tensor
, 3D or 4D with 3 color channels, with values in the range [0, 255]. The preprocessed data are written over the input data if the data types are compatible. To avoid this behaviour,numpy.copy(x)
can be used. data_format
- Optional data format of the image tensor/array. Defaults to
None, in which case the global setting
tf.keras.backend.image_data_format()
is used (unless you changed it, it defaults to "channels_last"). mode
- One of "caffe", "tf" or "torch". Defaults to "caffe". - caffe: will convert the images from RGB to BGR, then will zero-center each color channel with respect to the ImageNet dataset, without scaling. - tf: will scale pixels between -1 and 1, sample-wise. - torch: will scale pixels between 0 and 1 and then will normalize each channel with respect to the ImageNet dataset.
Returns
Preprocessed
numpy.array
or atf.Tensor
with typefloat32
.Raises
ValueError
- In case of unknown
mode
ordata_format
argument.
Expand source code
@keras_export('keras.applications.imagenet_utils.preprocess_input') def preprocess_input(x, data_format=None, mode='caffe'): """Preprocesses a tensor or Numpy array encoding a batch of images.""" if mode not in {'caffe', 'tf', 'torch'}: raise ValueError('Unknown mode ' + str(mode)) if data_format is None: data_format = backend.image_data_format() elif data_format not in {'channels_first', 'channels_last'}: raise ValueError('Unknown data_format ' + str(data_format)) if isinstance(x, np.ndarray): return _preprocess_numpy_input( x, data_format=data_format, mode=mode) else: return _preprocess_symbolic_input( x, data_format=data_format, mode=mode)