notas de estudio de tensorflow2.x veintinueve: pequeño resumen de la documentación oficial de la API

1. tfAPI de uso común a continuación (las siguientes son de uso más común, principalmente para definir datos de procesamiento)

1. tf.constant, tf.variable (tiene más atributos que constantes, como .assign, .assign_add,
.assign_sub, estos atributos devuelven directamente el valor a la variable var, es decir, cambian directamente su valor),
tf .string, tf.range, tf.ones, tf.zeros, tf.linespace; tf.meshgrid.tf.RaggedTensor; datos de definición

2 、 tf.fill, tf.shape, tf.one_hot, tf.sort, tf.split, tf.stack, tf.concat, tf.reshape, tf.squeeze, tf.reverse,
tf.tanspose , tf.unique ;操作 数据

3. tf.random.normal, tf.random.shuffle, tf.random.uniform; definir números aleatorios

4. tf.function; función de operación

5. tf.device; especifique en qué dispositivo (GPU o CPU) se calcularán los datos

6. tf.GradientTape, tf.gradients, tf.stop_gradient; Diferenciación explícita cuando se usa en entrenamiento personalizado

En segundo lugar, tf.audiola API de uso común

1. tf.audio.decode_wav; Analiza el archivo de audio en formato WAV en un tensor flotante, forma = (longitud, canales)

2. tf.audio.encode_wav; codifica el tensor de tipo flotante anterior en un archivo de audio en formato WAV

Tres, tf.autographla API de uso común

1. tf.autograph.to_graph; convierta programas de Python ordinarios en gráficos de cálculo de tf, por lo que la eficiencia de la función mejorará

2. tf.autograph.to_code; similar a to_graph, pero devolverá el código del programa en forma de cadena

En cuarto lugar, tf.compatlas API de uso común en (compatibilidad en sí significa compatibilidad)

1. tf.compat.as_bytes; convierte unicode o matriz de bytes, bytes en bytes

2. tf.compat.as_text; convierte datos similares a cadenas en Unicode

3. tf.compat.as_str_any; convierte la entrada al tipo str

4. tf.compat.v1, tf.compat.v2; estos dos se utilizan para ser compatibles con el código de tf1.xy tf2.x, es decir, puede llamar a esta función de su propia versión directamente en v1 o v2 . v1. = tf1 .; v2. = tf2 .; son el espacio raíz

Cinco, tf.cofiglas API de uso común (utilizadas principalmente para la configuración de GPU o CPU)

Inserte la descripción de la imagen aquí

Seis, tf.datalas API de uso común a continuación (utilizadas principalmente para generar y manipular conjuntos de datos)

1. API de uso común en tf.data.Dataset, es decir, los métodos que el conjunto de datos generado puede ejecutar
aplican, por lotes, concatenar, enumerar, filtrar, from_generator, from_tensor_slices,
from_tensors, Interval, map, range, repeat, shuffle, take , saltar

2. API de uso común en tf.data.TextLineDataset, que se usa para analizar cada línea en el archivo para generar un conjunto de datos. La función después de generar el conjunto de datos es exactamente la misma que en 1.

3. API de uso común en tf.data.TFRecordDataset, que se utilizan para analizar archivos TFRecord para generar conjuntos de datos. Las funciones después de generar conjuntos de datos son exactamente las mismas que las de 1.

7. tf.distributeAPI de uso común en (principalmente incluyen algunas estrategias distribuidas para capacitación distribuida)

1 、 tf.distribute.MirroredStrategy
2 、 tf.distribute.experimental.CentralStorageStrategy
3 、 tf.distribute.experimental.MultiWorkerMirroredStrategy
4 、 tf.distribute.experimental.ParameterServerStrategy
5 、USte.expery.distribuy

8. tf.dtypesAPI de uso común en (utilizadas principalmente para la conversión de tipos de datos)

1. tf.dtypes.as_dtype (type_value); Convierte el valor de tipo dado en DType; los valores principales de DType son los siguientes:
Inserte la descripción de la imagen aquí

2. tf.dtypes.cast; realizar conversión de tipo de datos

3. tf.dtypes.complex; Combina los dos números dados en un número complejo (una parte real, una parte imaginaria)

Nueve, tf.estimatorla API de uso común en (esta es una API de alto nivel, no necesita crear su propio modelo, solo necesita ingresar datos, especificar la categoría de clasificación, etc .; luego llamarla .train(),.evaluate(),.predict(); principalmente por conveniencia de entrenamiento, evaluación y predicción de modelos; hay muchos en Estimator)

1 、 tf.estimator.add_metrics (estimator, metric_fn) ; 往 estimator 中 添加 metric
2 、 tf.estimator.BaselineClassifier , tf.estimator.BaselineRegressor , tf.estimator.BaselineEstimator
3 、 tf.estimator.DNf.estimator , Tf.estimator.DNNRegressor
4 、 tf.estimator.LinearClassifier , tf.estimator.LinearEstimator , tf.estimator.LinearRegressor

10. tf.feature_columnAPI de uso común en (principalmente para procesar aquellas características con muchos valores discretos y convertirlas en códigos 0,1)

1 、 tf.feature_column.categorical_column_with_vocabulary
2 、 tf.feature_column.indicator_column
3 、 tf.feature_column.crossed_column
4 、 tf.feature_column.numeric_column

11. tf.imageAPI de uso común en (principalmente procesamiento de datos de imágenes o imágenes)

1. tf.image.adjust_brightness, tf.image.adjust_contrast, tf.image.adjust_gamma; ajustar el brillo, etc.
2. tf.image.central_crop, tf.image.crop_and_resize, tf.image.crop_to_bounding_box; recortar
3. tf. image. draw_bounding_boxes; puede dibujar múltiples cuadros de anclaje
4, tf.image.flip_left_right, tf.image.flip_up_down; voltear imagen
5, tf.image.grayscale_to_rgb, tf.image.hsv_to_rgb, tf.image.rgb_to_ domain conversion
6, tf .image.random_flip_left_right, tf.image.random_crop; operación aleatoria
7, tf.image.resize, tf.image.ResizeMethod.BILINEAR; hay muchos métodos de cambio de tamaño en ResizeMethod

Doce, tf.iolas API de uso común (principalmente para analizar, codificar o serializar archivos (imágenes, textos, etc.) o tenor)

1. tf.io.decode_gif, tf.io.decode_jpeg, tf.io.decode_image ...; decodificar la imagen
2. tf.io.decode_csv, tf.io.read_file, tf.io.write_file; leer, escribir y analizar archivos
3. tf.io.serialize_sparse, tf.io.serialize_tensor; operación de serialización
4. tf.io.TFRecordOptions, tf.io.TFRecordWriter; operar en archivos
TFRecord 5. tf.io.gfile. (listdir, makedirs, eliminar , Renombrar, existe, copiar) (fácil de usar)

Trece, tf.keraslas API de uso común en (énfasis, principalmente y model,layersrelacionadas)

1. tf.keras.Input; inicializa un tensor keras, usado para ingresar datos en el modelo, y especifica la forma, el tipo de datos y otra información de los datos; por supuesto, también se puede usar para cálculos generales, pero es no se usa mucho. El uso principal es construir un modelo, como se muestra en el primer ejemplo en 2.

2. tf.keras.Model; utilizado principalmente para construir un modelo, hay dos formas de construir un modelo:

①inputs = tf.keras.Input(shape=(3,))
x = tf.keras.layers.Dense(4, activation=tf.nn.relu)(inputs)
outputs = tf.keras.layers.Dense(5, activation=tf.nn.softmax)(x)
model = tf.keras.Model(inputs=inputs, outputs=outputs)
import tensorflow as tf
 
class MyModel(tf.keras.Model):
 
  def __init__(self):
    super(MyModel, self).__init__()
    self.dense1 = tf.keras.layers.Dense(4, activation=tf.nn.relu)
    self.dense2 = tf.keras.layers.Dense(5, activation=tf.nn.softmax)
 
  def call(self, inputs):
    x = self.dense1(inputs)
    return self.dense2(x)
 
model = MyModel()

Luego puede llamar a varios atributos del modelo:
model.layers, model.metrics_names

各种 方法 : modelo.compile, evaluar, evaluar_generador, ajustar, ajustar_generador,
predicción de resumen , predecir_generador, guardar, guardar_pesos, cargar_ pesos, restablecer_estados, reiniciar_metricas

history = model.fit (), history = model.fit_generator (), history.history [pérdida o acc o val_loss o val_acc], es un diccionario

predict = model.predict (), predict = model.predict_generator (), es el resultado de la predicción, como la forma, puede verificar su forma: predict.shape = (num_samples, num_class), esta es la salida de la clasificación problema

3. tf.keras.Sequential; es una pila lineal que almacena el modelo y devuelve un objeto de modelo, pero tiene dos métodos más que el modelo en 2 para agregar y eliminar capas: agregar, resaltar

4. tf.keras.activations.softmax, tf.keras.activations.relu, tf.keras.activations.tanh;
tf.nn.softmax, tf.nn.sigmoid, tf.nn.relu, tf.nn.tanh. ..; Definir función de activación

5. tf.keras.applications.VGG16, tf.keras.applications.ResNet50 ...; llamar directamente al modelo definido

6. tf.keras.backend; es la API de backend proporcionada para keras. El llamado backend son algunas operaciones básicas, es decir, métodos de cálculo matemático. Debido a que keras es una API de alto nivel, no tiene estas operaciones básicas. Esto está más cerca del método de operación matemática bajo tf.math.

7. tf.keras.callbacks.EarlyStopping, tf.keras.callbacks.ModelCheckpoint,
tf.keras.callbacks.TensorBoard; tf.keras.callbacks.LearningRateScheduler
función de devolución de llamada es un conjunto de funciones que se llaman en una etapa específica del entrenamiento, Puede utilizar la función de devolución de llamada para observar el estado interno y la información estadística de la red durante el proceso de formación. Al pasar la lista de funciones de devolución de llamada al .fit () del modelo, las funciones del conjunto de funciones se pueden llamar en una etapa de entrenamiento determinada. Aquí hay un ejemplo de LearningRateScheduler, que aún es muy vívido:

def scheduler(epoch):
  if epoch < 10:
    return 0.001
  else:
    return 0.001 * tf.math.exp(0.1 * (10 - epoch))

callback = tf.keras.callbacks.LearningRateScheduler(scheduler)
model.fit(data, labels, epochs=100, callbacks=[callback],
          validation_data=(val_data, val_labels))

8. tf.keras.datasets; utilizado para descargar algunos conjuntos de datos, principalmente fashion_minist, cifa10, minist, cifa100, el formato de llamada es el siguiente:
fashion_minist = keras.datasets.fashion_minist, fashion_minist.load_data ()

9. tf.keras.estimator.model_to_estimator; utilizado para convertir el modelo keras en estimador, tenga en cuenta que no existe tal función en tf.estimator, solo este lugar tiene

10. tf.keras.initializers; utilizado principalmente para la inicialización de datos, creando una instancia de inicialización o serialización / deserialización; el formato de llamada es el siguiente: tf.keras.layers.Dense (32, activación = 'relu', kernel_initializer = tf. keras.initializers.glorot_normal))

11. tf.keras.layers.Dense, tf.keras.layers.Conv2D, tf.keras.layers.MaxPool2D, tf.keras.layers.Flatten;
tf.nn.avg_pool, tf.nn.conv2d, tf.nn. dropout, tf.nn.max_pool ...;
hay varias capas de red, como capa convolucional, completamente conectada, capa de aplanamiento, capa de agrupación, etc.

12. tf.keras.losses.MSE, tf.keras.losses.sparse_categorical_crossentropy; defina la función de pérdida
tf.nn.nce_loss, tf.nn.l2_loss, tf.nn.sampled_softmax_loss ...;

13. tf.keras.metrics; también hay varias funciones para calcular el error y la precisión a continuación. La función de error es similar a la de tf.keras.losses, pero el uso es diferente. El objeto devuelto por el primero tiene muchos atributos disponibles , mientras que el último devuelve Es solo un valor. (Tenga en cuenta que la función en metircs agregará automáticamente los datos actualizados cada vez antes de reiniciar. La comprensión de esta adición es equivalente al último resultado del cálculo sin contar, y luego sumar todos los datos actuales datos Levántese y vuelva a calcular de acuerdo con el método que especifique. Por lo tanto, existe tal efecto que si usa Media, el cálculo final es el promedio de todos los datos; si es Suma, entonces la suma de todos los datos es calculado).
En la compilación, los parámetros agregados en las métricas se utilizan para monitorear el modelo durante el entrenamiento y las pruebas, es decir, los resultados de la medición se guardan en el historial y la pérdida es la función que realmente se usa para el entrenamiento, como la actualización del gradiente.
Incluye principalmente: Exactitud, Exactitud categórica, Exactitud categórica, Media, Suma

model.compile('sgd', loss=tf.keras.losses.SparseCategoricalCrossentropy())
model.compile('sgd', loss='mse',metrics=[tf.keras.metrics.SparseCategoricalCrossentropy()])

Tenga en cuenta que las API de tf.losses, tf.metrics y tf.optimizers ya no se utilizan, y todas se trasladan a tf.keras.losses, tf.keras.metrics y tf.keras.optimizers.

14. tf.keras.models; incluye principalmente guardar, cargar, clonar modelo;
y tf.keras.models.model_from_config, json, yaml

15. tf.keras.optimizers.SGD, tf.keras.optimizers.Adam, define el optimizador;
tf.keras.optimizers.schedules.LearningRateSchedule, define la tasa de aprendizaje lr atenuador

16. tf.keras.preprocessing; preprocesamiento de datos, principalmente utilizando la API para leer imágenes, de la siguiente manera las tres primeras líneas:
incluida la lectura de imágenes de un directorio o marco de datos, recorte de brillo aleatorio, rotación y escalado, etc.
tf.keras.preprocessing .image.ImageDataGenerator,
tf.keras.preprocessing.image.load_img,
tf.keras.preprocessing.image.random_brightness,
tf.keras.preprocessing.image.random_rotation
tf.keras.preprocessing.image.random_shear,
tf.keras.preprocessing. image.random_zoom
tf .keras.preprocessing.sequence,
tf.keras.preprocessing.text;

train_datagen = keras.preprocessing.image.ImageDataGenerator(
    rescale = 1./255,
    rotation_range = 40,
    width_shift_range = 0.2,
    height_shift_range = 0.2,
    shear_range = 0.2,
    zoom_range = 0.2,
    horizontal_flip = True,
    fill_mode = 'nearest',)
train_generator = train_datagen.flow_from_dataframe(
    train_df,
    directory = './',
    x_col = 'filepath',
    y_col = 'class',
    classes = class_names,
    target_size = (height, width),
    batch_size = batch_size,
    seed = 7,
    shuffle = True,
    class_mode = 'sparse',)
train_generator = train_datagen.flow_from_directory(
    train_dir,
    target_size = (height, width),
    batch_size = batch_size,
    seed = 7,
    shuffle = True,
    class_mode = "categorical")

## ImageDataGenerator solo define el preprocesamiento de la imagen leída, pero en este momento no está seguro de si leer desde la carpeta o desde el marco de datos, si se lee desde el marco de datos, entonces la estructura del marco de datos debe ser dos One feature_column , uno es la ruta de cada imagen y el otro es la categoría de la imagen, como se muestra a continuación:

[('./cifar10/train/1.png', 'rana'),
('./cifar10/train/2.png', 'camión'),
('./cifar10/train/3.png', 'camión'),
('./cifar10/train/4.png', 'ciervo'),
('./cifar10/train/5.png', 'automóvil')]
[('./cifar10/test/ 1.png ',' gato '),
(' ./cifar10/test/2.png ',' gato '),
(' ./cifar10/test/3.png ',' gato '),
(' ./ cifar10 / test / 4.png ',' gato '),
(' ./cifar10/test/5.png ',' gato ')]

17. tf.keras.regularizers; Utilizado principalmente para lograr la regularización, la regularización es agregar un elemento adicional después de la función objetivo, de modo que afecte la selección de la mejor ventaja de la función objetivo y pueda evitar el sobreajuste. Existen principalmente las siguientes API:
tf.keras.regularizers.l1, tf.keras.regularizers.l2, tf.keras.regularizers.l1_l2, tf.keras.regularizers.L1L2

18 、 tf.keras.utils: tf.keras.utils.get_file, tf.keras.utils.normalize

15. tf.nnAPI de uso común en

Está muy cerca de alguna capa y pérdida bajo tf.keras, se ha escrito en tf.keras para comparar

16. tf.raggedAPI de uso común en

tf.ragged.constant, tf.ragged.stack, tf.ragged.range; el llamado tensor irregular es, por ejemplo, una matriz bidimensional, entonces permite que cada fila tenga un número diferente de elementos.

17. tf.randomAPI de uso común en

tf.random.categorical, tf.random.normal, tf.random.gamma, tf.random.shuffle,
tf.random.uniform; utilizado para definir algunos números aleatorios, incluida la distribución normal

18. tf.saved_modelAPI de uso común en

tf.saved_model.save, tf.saved_model.load; usado para guardar y cargar modelos, también hay bajo tf.keras.models

19. tf.signalAPI de uso común en (funciones relacionadas con el procesamiento de señales digitales)

fft 、 fft2d 、 fft3d 、 ifft 、 ifft2d 、 ifft3d ; fftshift 、 ifftshift ; hamming_window 、 hann_window ;
irfft 、 irfft2d 、 irfft3d 、 rfft 、 rfft2d 、 rfft3d 等等

Veinte. tf.sparseAPI de uso común (utilizadas principalmente para procesamiento sparsetensor)

1 、 定义 sparsetensor : tf.sparse.SparseTensor
tf.sparse.SparseTensor (índices = [[0, 0], [1, 2]], valores = [1, 2], dense_shape = [3, 4])

2 、 操作 sparsetensor : to_dense 、 to_indicator 、 dividir 、 transponer 、 remodelar 、 máximo 、 expand_dims 、 reducir_sum 、 reducir_max 、 agregar 、 concat 等等

21. tf.stringAPI de uso común en (utilizadas principalmente para definir y manipular cadenas)

as_string, bytes_split (dividido por bytes), format, join, split, strip, lower, upper, to_number, Substr

22. tf.testAPI de uso común en (utilizadas principalmente para ver información relacionada con la GPU)

tf.test.is_gpu_available 、 tf.test.gpu_device_name 、 tf.test.is_built_with_cuda

Supongo que te gusta

Origin blog.csdn.net/qq_39507748/article/details/110769378
Recomendado
Clasificación