人工智能深度学习入门练习之(21)TensorFlow2教程-使用keras训练模型
发布日期:2021-05-14 00:18:03 浏览次数:22 分类:博客文章

本文共 341043 字,大约阅读时间需要 1136 分钟。

 

������������������TensorFlow 2.0���������������������������������������������������������������������������

  • ������������������������������API���������model.fit()���model.evaluate()���model.predict()������
  • ������eager execution ���GradientTape������������������������������������������

���������������������������������������������������������������������������������������Keras������������������������������������������������������Sequential ������, ��������� API, ������������������������

In [1]:
# !pip install -q pydot# !apt-get install graphviz
In [2]:
from __future__ import absolute_import, division, print_functionimport tensorflow as tftf.keras.backend.clear_session()import tensorflow.keras as kerasimport tensorflow.keras.layers as layers
 
/home/doit/anaconda3/lib/python3.6/site-packages/h5py/__init__.py:36: FutureWarning: Conversion of the second argument of issubdtype from `float` to `np.floating` is deprecated. In future, it will be treated as `np.float64 == np.dtype(float).type`.  from ._conv import register_converters as _register_converters
 

1 ���������������������������������������������

������������������������������API���������������������������������

In [13]:
# ������������inputs = keras.Input(shape=(784,), name='mnist_input')h1 = layers.Dense(64, activation='relu')(inputs)h1 = layers.Dense(64, activation='relu')(h1)outputs = layers.Dense(10, activation='softmax')(h1)model = keras.Model(inputs, outputs)# keras.utils.plot_model(model, 'net001.png', show_shapes=True)model.compile(optimizer=keras.optimizers.RMSprop(), loss=keras.losses.SparseCategoricalCrossentropy(), metrics=[keras.metrics.SparseCategoricalAccuracy()])
 

���������������������������

In [14]:
# ������������(x_train, y_train), (x_test, y_test) = keras.datasets.mnist.load_data()x_train = x_train.reshape(60000, 784).astype('float32') /255x_test = x_test.reshape(10000, 784).astype('float32') /255# ������������float 32��� ������������������������TypeError: Input 'y' of 'Sub' Op has type float32 that does not match type uint8 of argument 'x'.y_train = y_train.astype('float32')y_test = y_test.astype('float32')# ���������������x_val = x_train[-10000:]y_val = y_train[-10000:]x_train = x_train[:-10000]y_train = y_train[:-10000]# ������������history = model.fit(x_train, y_train, batch_size=64, epochs=3, validation_data=(x_val, y_val))print('history:')print(history.history)result = model.evaluate(x_test, y_test, batch_size=128)print('evaluate:')print(result)pred = model.predict(x_test[:2])print('predict:')print(pred)
 
Train on 50000 samples, validate on 10000 samplesEpoch 1/350000/50000 [==============================] - 2s 40us/sample - loss: 0.3406 - sparse_categorical_accuracy: 0.9038 - val_loss: 0.1747 - val_sparse_categorical_accuracy: 0.9478Epoch 2/350000/50000 [==============================] - 2s 32us/sample - loss: 0.1562 - sparse_categorical_accuracy: 0.9521 - val_loss: 0.1353 - val_sparse_categorical_accuracy: 0.9605Epoch 3/350000/50000 [==============================] - 2s 34us/sample - loss: 0.1142 - sparse_categorical_accuracy: 0.9647 - val_loss: 0.1093 - val_sparse_categorical_accuracy: 0.9670history:{'loss': [0.3406039907693863, 0.1561644163942337, 0.11421714420557022], 'sparse_categorical_accuracy': [0.90378, 0.95214, 0.96466], 'val_loss': [0.17468911408782006, 0.13526522952914238, 0.10934125750362873], 'val_sparse_categorical_accuracy': [0.9478, 0.9605, 0.967]}10000/1 [================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================] - 0s 8us/sample - loss: 0.0680 - sparse_categorical_accuracy: 0.9643evaluate:[0.11812290600538254, 0.9643]predict:[[5.96028303e-06 1.22943675e-06 5.60810586e-05 4.95154876e-03  3.37098766e-10 1.87345813e-05 1.95063844e-11 9.94938374e-01  3.62650326e-06 2.44577204e-05] [9.77753075e-07 1.13667054e-04 9.99821007e-01 5.17880726e-05  1.29938716e-11 9.91447632e-06 3.67613637e-07 2.29428121e-08  2.27706096e-06 1.34117118e-11]]
 

2 ������������������������

 

2.1 ������������

������������������������������������������������������������������������������������������������������������������������������������������������compile()���������������������������������������������������������

In [15]:
model.compile(optimizer=keras.optimizers.RMSprop(learning_rate=1e-3), loss=keras.losses.SparseCategoricalCrossentropy(), metrics=[keras.metrics.SparseCategoricalAccuracy()])
 

TensorFlow2������������������������������������������������ ������������������������������

  • ������������ - SGD()������������������������ - RMSprop() - Adam() -���������

  • ��������� - MeanSquaredError() - KLDivergence() - CosineSimilarity() -���������

  • ��������� - AUC() - Precision() - Recall() -���������

 

2.2 ���������������

���Keras���������������������������������������������

  • ���������������������������������y_true������������y_pred���
  • ������������������������keras.losser.Loss��������� ������������������������������������������������������������������������������������������������������
In [16]:
def get_uncompiled_model():    inputs = keras.Input(shape=(784,), name='digits') x = layers.Dense(64, activation='relu', name='dense_1')(inputs) x = layers.Dense(64, activation='relu', name='dense_2')(x) outputs = layers.Dense(10, activation='softmax', name='predictions')(x) model = keras.Model(inputs=inputs, outputs=outputs) return modelmodel = get_uncompiled_model()def basic_loss_function(y_true, y_pred): return tf.math.reduce_mean(y_true - y_pred)model.compile(optimizer=keras.optimizers.Adam(), loss=basic_loss_function)model.fit(x_train, y_train, batch_size=64, epochs=3)
 
Train on 50000 samplesEpoch 1/350000/50000 [==============================] - 1s 28us/sample - loss: 4.3488Epoch 2/350000/50000 [==============================] - 1s 24us/sample - loss: 4.3488Epoch 3/350000/50000 [==============================] - 1s 25us/sample - loss: 4.3488
Out[16]:
 

������������������������������������������������������������tf.keras.losses.Loss������������������������������

  • __init__(self) ������������������������������loss���������
  • call(self, y_true, y_pred) ������ y_true���y_pred������������������������

������������������������WeightedCrossEntropy������������������������������������������������������������������������������������������������

In [17]:
class WeightBinaryCrossEntropy(keras.losses.Loss): def __init__(self, pos_weight, weight, from_logits=False, reduction=keras.losses.Reduction.AUTO, name='weight_binary_crossentropy'): """ pos_weight: ������������������ weight: ������������������ from_logits: ������������logits���������loss���������������probability��� reduction: reduction������ name: ������ """ super(WeightBinaryCrossEntropy, self).__init__(reduction=reduction, name=name) self.pos_weight = pos_weight self.weight = weight self.from_logits = from_logits def call(self, y_true, y_pred): if not self.from_logits: x_1 = y_true * self.pos_weight * -tf.math.log(y_pred + 1e-6) x_2 = (1-y_true) * -tf.math.log(1-y_pred + 1e-6) return tf.add(x_1, x_2) * self.weight return tf.nn.weighted_cross_entropy_with_logits(y_true, y_pred, self.pos_weight) *self.weight model.compile(optimizer=keras.optimizers.Adam(), loss=WeightBinaryCrossEntropy(0.5, 2))model.fit(x_train, y_train, batch_size=64, epochs=3)
 
Train on 50000 samplesEpoch 1/350000/50000 [==============================] - 2s 35us/sample - loss: 9.5178Epoch 2/350000/50000 [==============================] - 1s 27us/sample - loss: 9.5171Epoch 3/350000/50000 [==============================] - 1s 27us/sample - loss: 9.5171
Out[17]:
 

������������������������������loss

In [18]:
class ActivityRegularizationLayer(layers.Layer): def call(self, inputs): self.add_loss(tf.reduce_sum(inputs)* 0.1) return inputsinputs = keras.Input(shape=(784,), name='digits')x = layers.Dense(64, activation='relu', name='dense_1')(inputs)# ���������������������������������x = ActivityRegularizationLayer()(x)x = layers.Dense(64, activation='relu', name='dense_2')(x)outputs = layers.Dense(10, activation='softmax', name='predictions')(x)model = keras.Model(inputs=inputs, outputs=outputs)model.compile(optimizer=keras.optimizers.RMSprop(learning_rate=1e-3), loss='sparse_categorical_crossentropy')# ������model.fit(x_train, y_train, batch_size=64, epochs=1)
 
Train on 50000 samples50000/50000 [==============================] - 2s 36us/sample - loss: 2.4702
Out[18]:
 

2.3 ���������������

���������������������������Metric������ ������������������������

  • __init__(self)���������������

  • update_state(self���y_true���y_pred���sample_weight = None)������������������y_true���������������y_pred������������������������

  • result(self)������������������������������������������������

  • reset_states(self)������������������������������������

���������������������������������������������������update_state()���result()������������������������������������������������������������������������������������������������

In [6]:
# ���������������������������������������������������CatgoricalTruePositives���������������������������������������������������������������������class CatgoricalTruePostives(keras.metrics.Metric): def __init__(self, name='binary_true_postives', **kwargs): super(CatgoricalTruePostives, self).__init__(name=name, **kwargs) # ��������������������� self.true_postives = self.add_weight(name='tp', initializer='zeros') def update_state(self, y_true, y_pred, sample_weight=None): # ������������id y_pred = tf.argmax(y_pred) # ��������������� y_true = tf.equal(tf.cast(y_pred, tf.int32), tf.cast(y_true, tf.int32)) y_true = tf.cast(y_true, tf.float32) if sample_weight is not None: # ������������������������ sample_weight = tf.cast(sample_weight, tf.float32) y_true = tf.multiply(sample_weight, y_true) # ������������������������ return self.true_postives.assign_add(tf.reduce_sum(y_true)) def result(self): # ������������tensor return tf.identity(self.true_postives) def reset_states(self): # ���������0 self.true_postives.assign(0.) model.compile(optimizer=keras.optimizers.RMSprop(1e-3), loss=keras.losses.SparseCategoricalCrossentropy(), metrics=[CatgoricalTruePostives()])model.fit(x_train, y_train, batch_size=64, epochs=3)
 
Epoch 1/350000/50000 [==============================] - 1s 27us/sample - loss: 0.0590 - binary_true_postives: 9186.0000Epoch 2/350000/50000 [==============================] - 1s 24us/sample - loss: 0.0499 - binary_true_postives: 9957.0000Epoch 3/350000/50000 [==============================] - 1s 25us/sample - loss: 0.0441 - binary_true_postives: 10939.0000
Out[6]:
 

���������������������������������������������

In [5]:
# ������������������������������������������������������metricclass MetricLoggingLayer(layers.Layer): def call(self, inputs): # ��������������������������������� self.add_metric(keras.backend.std(inputs), name='std_of_activation', aggregation='mean') # ��������������������������� return inputsinputs = keras.Input(shape=(784,), name='mnist_input')h1 = layers.Dense(64, activation='relu')(inputs)# ���������������������������������h1 = MetricLoggingLayer()(h1)h1 = layers.Dense(64, activation='relu')(h1)outputs = layers.Dense(10, activation='softmax')(h1)model = keras.Model(inputs, outputs)# keras.utils.plot_model(model, 'net001.png', show_shapes=True)# ���������������������model.compile(optimizer=keras.optimizers.RMSprop(), loss=keras.losses.SparseCategoricalCrossentropy(), metrics=[keras.metrics.SparseCategoricalAccuracy()])model.fit(x_train, y_train, batch_size=32, epochs=1)
 
Train on 50000 samples50000/50000 [==============================] - 2s 41us/sample - loss: 0.2940 - sparse_categorical_accuracy: 0.9151 - std_of_activation: 0.9423
Out[5]:
 

���������������������������������������������������model.add_loss���model.add_metric������������������������

In [20]:
inputs = keras.Input(shape=(784,), name='mnist_input')h1 = layers.Dense(64, activation='relu')(inputs)h2 = layers.Dense(64, activation='relu')(h1)outputs = layers.Dense(10, activation='softmax')(h2)model = keras.Model(inputs, outputs)# ���������������loss���metric���������������(h1)������model.add_metric(keras.backend.std(h1), name='std_of_activation', aggregation='mean')model.add_loss(tf.reduce_sum(h1)*0.1)# keras.utils.plot_model(model, 'net001.png', show_shapes=True)model.compile(optimizer=keras.optimizers.RMSprop(), loss=keras.losses.SparseCategoricalCrossentropy(), metrics=[keras.metrics.SparseCategoricalAccuracy()])model.fit(x_train, y_train, batch_size=32, epochs=1)
 
Train on 50000 samples50000/50000 [==============================] - 4s 81us/sample - loss: 2.3469 - sparse_categorical_accuracy: 0.1130 - std_of_activation: 0.0010
Out[20]:
 

������������validation_data������������������������������������validation_split������������������

ps:validation_split������������numpy������������������������������

In [21]:
model.fit(x_train, y_train, batch_size=32, epochs=1, validation_split=0.2)
 
Train on 40000 samples, validate on 10000 samples40000/40000 [==============================] - 3s 79us/sample - loss: 2.3014 - sparse_categorical_accuracy: 0.1141 - std_of_activation: 3.6019e-06 - val_loss: 2.3013 - val_sparse_categorical_accuracy: 0.1115 - val_std_of_activation: 1.2214e-06
Out[21]:
 

3 ������tf.data������������

 

������������������������������������������������numpy������������������������������������������������������������������������������tf.data���������������������������

In [22]:
def get_compiled_model():    inputs = keras.Input(shape=(784,), name='mnist_input') h1 = layers.Dense(64, activation='relu')(inputs) h2 = layers.Dense(64, activation='relu')(h1) outputs = layers.Dense(10, activation='softmax')(h2) model = keras.Model(inputs, outputs) model.compile(optimizer=keras.optimizers.RMSprop(), loss=keras.losses.SparseCategoricalCrossentropy(), metrics=[keras.metrics.SparseCategoricalAccuracy()]) return modelmodel = get_compiled_model()# ������dataset������train_dataset = tf.data.Dataset.from_tensor_slices((x_train, y_train))# ������train_dataset = train_dataset.shuffle(buffer_size=1024).batch(64)# ������������������val_dataset = tf.data.Dataset.from_tensor_slices((x_val, y_val))val_dataset = val_dataset.batch(64)# model.fit(train_dataset, epochs=3)# steps_per_epoch ������epoch���������������# validation_steps ���������������������������model.fit(train_dataset, epochs=3, steps_per_epoch=100, validation_data=val_dataset, validation_steps=3)
 
Train for 100 steps, validate for 3 stepsEpoch 1/3100/100 [==============================] - 1s 15ms/step - loss: 0.8740 - sparse_categorical_accuracy: 0.7706 - val_loss: 0.4562 - val_sparse_categorical_accuracy: 0.8802Epoch 2/3100/100 [==============================] - 0s 3ms/step - loss: 0.3867 - sparse_categorical_accuracy: 0.8891 - val_loss: 0.3228 - val_sparse_categorical_accuracy: 0.8958Epoch 3/3100/100 [==============================] - 0s 3ms/step - loss: 0.3206 - sparse_categorical_accuracy: 0.9095 - val_loss: 0.2346 - val_sparse_categorical_accuracy: 0.9323
Out[22]:
 

���������������������������������������������������������������������������steps_per_epoch���������������������������������������������������������train_dataset.take(), ���������������������������������������������steps_per_epoc���������

In [24]:
model = get_compiled_model()model.fit(train_dataset.take(100), epochs=3)
 
Epoch 1/3100/100 [==============================] - 2s 17ms/step - loss: 0.7795 - sparse_categorical_accuracy: 0.7961Epoch 2/3100/100 [==============================] - 1s 5ms/step - loss: 0.3308 - sparse_categorical_accuracy: 0.9080Epoch 3/3100/100 [==============================] - 0s 3ms/step - loss: 0.2465 - sparse_categorical_accuracy: 0.9308
Out[24]:
In [23]:
# ������������test_dataset = tf.data.Dataset.from_tensor_slices((x_test, y_test))test_dataset = test_dataset.batch(64)print('\n# Evaluate')model.evaluate(test_dataset)
 
# Evaluate157/157 [==============================] - 0s 1ms/step - loss: 0.2669 - sparse_categorical_accuracy: 0.9243
Out[23]:
[0.2669110751835404, 0.9243]
 

������������������������������

������numpy���������TensorFlow Dataset,������������Pandas���python������������������������������ ���������������������������numpy��� ���������������������TensorFlow Dataset���

 

4 ������������������������

������������������������������������������������������������������������

��������������������������������������������������������������������������������������������������������������������������������� ��������������������������������������������������������������������������������������������������������� ���������������������1���0������������������������������������������������������������������������������������������������������

���������������dict������������������������������������������������������������������������������������������������������������������ ���������������������0������������������������1������������������������������class_weight = {0���1.���1���0.5}���

���������������

  • ������Numpy������������ ������sample_weight���class_weight���������������
  • ������Dataset������������ ������������������������(input_batch, target_batch, sample_weight_batch)���
 

���������������Numpy������������������5������������������������

In [25]:
# ���������5������������import numpy as np# ���������model = get_compiled_model()class_weight = {i:1.0 for i in range(10)}# ���5���������������2class_weight[5] = 2.0print(class_weight)model.fit(x_train, y_train, class_weight=class_weight, batch_size=64, epochs=4)# ������������model = get_compiled_model()sample_weight = np.ones(shape=(len(y_train),))sample_weight[y_train == 5] = 2.0model.fit(x_train, y_train, sample_weight=sample_weight, batch_size=64, epochs=4)
 
{0: 1.0, 1: 1.0, 2: 1.0, 3: 1.0, 4: 1.0, 5: 2.0, 6: 1.0, 7: 1.0, 8: 1.0, 9: 1.0}Train on 50000 samplesEpoch 1/450000/50000 [==============================] - 2s 49us/sample - loss: 0.3598 - sparse_categorical_accuracy: 0.9047Epoch 2/450000/50000 [==============================] - 2s 32us/sample - loss: 0.1603 - sparse_categorical_accuracy: 0.9545Epoch 3/450000/50000 [==============================] - 2s 32us/sample - loss: 0.1172 - sparse_categorical_accuracy: 0.9666Epoch 4/450000/50000 [==============================] - 2s 32us/sample - loss: 0.0940 - sparse_categorical_accuracy: 0.9738Train on 50000 samplesEpoch 1/450000/50000 [==============================] - 2s 42us/sample - loss: 0.3718 - sparse_categorical_accuracy: 0.9024Epoch 2/450000/50000 [==============================] - 2s 32us/sample - loss: 0.1749 - sparse_categorical_accuracy: 0.9506Epoch 3/450000/50000 [==============================] - 2s 32us/sample - loss: 0.1298 - sparse_categorical_accuracy: 0.9630Epoch 4/450000/50000 [==============================] - 2s 31us/sample - loss: 0.1031 - sparse_categorical_accuracy: 0.9702
Out[25]:
 

Dataset������������������5������������������������

In [26]:
# tf.data������model = get_compiled_model()sample_weight = np.ones(shape=(len(y_train),))sample_weight[y_train == 5] = 2.0# ���������dataset���������sample_weighttrain_dataset = tf.data.Dataset.from_tensor_slices((x_train, y_train, sample_weight))train_dataset = train_dataset.shuffle(buffer_size=1024).batch(64)val_dataset = tf.data.Dataset.from_tensor_slices((x_val, y_val))val_dataset = val_dataset.batch(64)model.fit(train_dataset, epochs=3, )
 
Epoch 1/3782/782 [==============================] - 4s 5ms/step - loss: 0.3777 - sparse_categorical_accuracy: 0.9011Epoch 2/3782/782 [==============================] - 2s 3ms/step - loss: 0.1792 - sparse_categorical_accuracy: 0.9496Epoch 3/3782/782 [==============================] - 2s 3ms/step - loss: 0.1295 - sparse_categorical_accuracy: 0.9629
Out[26]:
 

5 ������������������������

������������������������������������������������������������������������������������������loss���metric���

In [27]:
image_input = keras.Input(shape=(32, 32, 3), name='img_input')timeseries_input = keras.Input(shape=(None, 10), name='ts_input')x1 = layers.Conv2D(3, 3)(image_input)x1 = layers.GlobalMaxPooling2D()(x1)x2 = layers.Conv1D(3, 3)(timeseries_input)x2 = layers.GlobalMaxPooling1D()(x2)x = layers.concatenate([x1, x2])score_output = layers.Dense(1, name='score_output')(x)class_output = layers.Dense(5, activation='softmax', name='class_output')(x)model = keras.Model(inputs=[image_input, timeseries_input], outputs=[score_output, class_output])keras.utils.plot_model(model, 'multi_input_output_model.png' , show_shapes=True)
Out[27]:
 

���������������loss���metric

In [28]:
# ������������������������������loss���metricsmodel.compile(    optimizer=keras.optimizers.RMSprop(1e-3), loss=[keras.losses.MeanSquaredError(), keras.losses.CategoricalCrossentropy()])# ���������������loss���������model.compile( optimizer=keras.optimizers.RMSprop(1e-3), loss={'score_output': keras.losses.MeanSquaredError(), 'class_output': keras.losses.CategoricalCrossentropy()}, metrics={'score_output': [keras.metrics.MeanAbsolutePercentageError(), keras.metrics.MeanAbsoluteError()], 'class_output': [keras.metrics.CategoricalAccuracy()]}, loss_weight={'score_output': 2., 'class_output': 1.})# ���������������������������loss���0model.compile( optimizer=keras.optimizers.RMSprop(1e-3), loss=[None, keras.losses.CategoricalCrossentropy()])# ���������������������������������model.compile( optimizer=keras.optimizers.RMSprop(1e-3), loss={'class_output': keras.losses.CategoricalCrossentropy()})
 
WARNING: Logging before flag parsing goes to stderr.W1011 16:45:08.059540 139768509077312 training_utils.py:1348] Output score_output missing from loss dictionary. We assume this was done on purpose. The fit and evaluate APIs will not be expecting any data to be passed to score_output.
 

������������������������������������numpy���������������������

In [29]:
model.compile(    optimizer=keras.optimizers.RMSprop(1e-3), loss=[keras.losses.MeanSquaredError(), keras.losses.CategoricalCrossentropy()])# ������������img_data = np.random.random_sample(size=(100, 32, 32, 3))ts_data = np.random.random_sample(size=(100, 20, 10))score_targets = np.random.random_sample(size=(100, 1))class_targets = np.random.random_sample(size=(100, 5))# ������model.fit([img_data, ts_data], [score_targets, class_targets], batch_size=32, epochs=3)# ������������������������������������������model.fit({'img_input': img_data, 'ts_input': ts_data}, {'score_output': score_targets, 'class_output': class_targets}, batch_size=32, epochs=3)
 
Train on 100 samplesEpoch 1/3100/100 [==============================] - 1s 9ms/sample - loss: 9.0288 - score_output_loss: 2.9604 - class_output_loss: 5.3522Epoch 2/3100/100 [==============================] - 0s 249us/sample - loss: 7.4229 - score_output_loss: 2.1365 - class_output_loss: 5.3362Epoch 3/3100/100 [==============================] - 0s 201us/sample - loss: 6.5389 - score_output_loss: 1.3290 - class_output_loss: 4.9687Train on 100 samplesEpoch 1/3100/100 [==============================] - 0s 289us/sample - loss: 5.9722 - score_output_loss: 0.9410 - class_output_loss: 5.0048Epoch 2/3100/100 [==============================] - 0s 214us/sample - loss: 5.5640 - score_output_loss: 0.6367 - class_output_loss: 4.8433Epoch 3/3100/100 [==============================] - 0s 312us/sample - loss: 5.2626 - score_output_loss: 0.4297 - class_output_loss: 4.8506
Out[29]:
 

������Dataset���������������

In [30]:
train_dataset = tf.data.Dataset.from_tensor_slices( ({'img_input': img_data, 'ts_input': ts_data}, {'score_output': score_targets, 'class_output': class_targets}))train_dataset = train_dataset.shuffle(buffer_size=1024).batch(64)model.fit(train_dataset, epochs=3)
 
Epoch 1/32/2 [==============================] - 0s 177ms/step - loss: 5.0879 - score_output_loss: 0.3531 - class_output_loss: 4.7348Epoch 2/32/2 [==============================] - 0s 11ms/step - loss: 4.9957 - score_output_loss: 0.2925 - class_output_loss: 4.6843Epoch 3/32/2 [==============================] - 0s 13ms/step - loss: 4.8919 - score_output_loss: 0.2547 - class_output_loss: 4.6686
Out[30]:
 

6 ������������

Keras������������������������������������epoch������������batch������������epoch���������������������������������������������������������������������������������

  • ������������������������������������������������������������������������������������
  • ������������������������������������������������
  • ���������������������������������������������������������
  • ������������������������������������������������������
  • ���������������������������������������������������������������������������������������������

���������������������������

  • ModelCheckpoint������������������������
  • EarlyStopping������������������������������������������������������
  • TensorBoard���������������������TensorBoard���������������������������������������������������������������
  • CSVLogger������������������������������������������CSV���������
  • ������
 

6.1 ������������

������������������������������������������

1���������������

In [31]:
model = get_compiled_model()callbacks = [ keras.callbacks.EarlyStopping( # ��������������������������� monitor='val_loss', # ��������������������� min_delta=1e-2, # ��������������������� patience=2, verbose=1)]model.fit(x_train, y_train, epochs=20, batch_size=64, callbacks=callbacks, validation_split=0.2)
 
Train on 40000 samples, validate on 10000 samplesEpoch 1/2040000/40000 [==============================] - 2s 51us/sample - loss: 0.3631 - sparse_categorical_accuracy: 0.8978 - val_loss: 0.2154 - val_sparse_categorical_accuracy: 0.9335Epoch 2/2040000/40000 [==============================] - 1s 35us/sample - loss: 0.1695 - sparse_categorical_accuracy: 0.9501 - val_loss: 0.1844 - val_sparse_categorical_accuracy: 0.9447Epoch 3/2040000/40000 [==============================] - 1s 35us/sample - loss: 0.1267 - sparse_categorical_accuracy: 0.9632 - val_loss: 0.1592 - val_sparse_categorical_accuracy: 0.9519Epoch 4/2040000/40000 [==============================] - 1s 35us/sample - loss: 0.1013 - sparse_categorical_accuracy: 0.9694 - val_loss: 0.1440 - val_sparse_categorical_accuracy: 0.9594Epoch 5/2040000/40000 [==============================] - 1s 35us/sample - loss: 0.0837 - sparse_categorical_accuracy: 0.9754 - val_loss: 0.1453 - val_sparse_categorical_accuracy: 0.9582Epoch 6/2040000/40000 [==============================] - 1s 35us/sample - loss: 0.0715 - sparse_categorical_accuracy: 0.9783 - val_loss: 0.1446 - val_sparse_categorical_accuracy: 0.9599Epoch 00006: early stopping
Out[31]:
 

2���������������

In [32]:
# checkpoint������������model = get_compiled_model()check_callback = keras.callbacks.ModelCheckpoint( # ������������ filepath='mymodel_{epoch}.h5', # ������������������ save_best_only=True, # ������������ monitor='val_loss', # ��������������� verbose=1)model.fit(x_train, y_train, epochs=3, batch_size=64, callbacks=[check_callback], validation_split=0.2)
 
Train on 40000 samples, validate on 10000 samplesEpoch 1/338656/40000 [===========================>..] - ETA: 0s - loss: 0.3797 - sparse_categorical_accuracy: 0.8946Epoch 00001: val_loss improved from inf to 0.24097, saving model to mymodel_1.h540000/40000 [==============================] - 2s 47us/sample - loss: 0.3731 - sparse_categorical_accuracy: 0.8963 - val_loss: 0.2410 - val_sparse_categorical_accuracy: 0.9263Epoch 2/339040/40000 [============================>.] - ETA: 0s - loss: 0.1717 - sparse_categorical_accuracy: 0.9493Epoch 00002: val_loss improved from 0.24097 to 0.18096, saving model to mymodel_2.h540000/40000 [==============================] - 1s 35us/sample - loss: 0.1713 - sparse_categorical_accuracy: 0.9495 - val_loss: 0.1810 - val_sparse_categorical_accuracy: 0.9459Epoch 3/339680/40000 [============================>.] - ETA: 0s - loss: 0.1260 - sparse_categorical_accuracy: 0.9630Epoch 00003: val_loss improved from 0.18096 to 0.15665, saving model to mymodel_3.h540000/40000 [==============================] - 1s 37us/sample - loss: 0.1260 - sparse_categorical_accuracy: 0.9630 - val_loss: 0.1567 - val_sparse_categorical_accuracy: 0.9521
Out[32]:
 

3������������������

In [34]:
# ���������������������initial_learning_rate = 0.1lr_schedule = keras.optimizers.schedules.ExponentialDecay( # ��������������� initial_learning_rate, # ������������ decay_steps=10000, # ��������������� decay_rate=0.96, staircase=True)optimizer = keras.optimizers.RMSprop(learning_rate=lr_schedule)model.compile( optimizer=optimizer, loss=keras.losses.SparseCategoricalCrossentropy(), metrics=[keras.metrics.SparseCategoricalAccuracy()])model.fit(x_train, y_train, epochs=3, batch_size=64, callbacks=[check_callback], validation_split=0.2)
 
Train on 40000 samples, validate on 10000 samplesEpoch 1/339680/40000 [============================>.] - ETA: 0s - loss: 4.9481 - sparse_categorical_accuracy: 0.2915Epoch 00001: val_loss did not improve from 0.1566540000/40000 [==============================] - 2s 42us/sample - loss: 4.9245 - sparse_categorical_accuracy: 0.2911 - val_loss: 1.8496 - val_sparse_categorical_accuracy: 0.2757Epoch 2/339680/40000 [============================>.] - ETA: 0s - loss: 1.7370 - sparse_categorical_accuracy: 0.3520Epoch 00002: val_loss did not improve from 0.1566540000/40000 [==============================] - 1s 35us/sample - loss: 1.7349 - sparse_categorical_accuracy: 0.3529 - val_loss: 1.9447 - val_sparse_categorical_accuracy: 0.3140Epoch 3/338720/40000 [============================>.] - ETA: 0s - loss: 1.4804 - sparse_categorical_accuracy: 0.4632Epoch 00003: val_loss did not improve from 0.1566540000/40000 [==============================] - 1s 34us/sample - loss: 1.4759 - sparse_categorical_accuracy: 0.4642 - val_loss: 1.2941 - val_sparse_categorical_accuracy: 0.5334
Out[34]:
 

4������������������

In [36]:
# ������tensorboardtensorboard_cbk = keras.callbacks.TensorBoard(log_dir='./full_path_to_your_logs')model = get_compiled_model()model.fit(x_train, y_train, epochs=5, batch_size=64, callbacks=[tensorboard_cbk], validation_split=0.2)
 
Train on 40000 samples, validate on 10000 samplesEpoch 1/540000/40000 [==============================] - 2s 46us/sample - loss: 0.3759 - sparse_categorical_accuracy: 0.8946 - val_loss: 0.2314 - val_sparse_categorical_accuracy: 0.9332Epoch 2/540000/40000 [==============================] - 1s 36us/sample - loss: 0.1778 - sparse_categorical_accuracy: 0.9472 - val_loss: 0.1941 - val_sparse_categorical_accuracy: 0.9389Epoch 3/540000/40000 [==============================] - 1s 35us/sample - loss: 0.1310 - sparse_categorical_accuracy: 0.9617 - val_loss: 0.1643 - val_sparse_categorical_accuracy: 0.9503Epoch 4/540000/40000 [==============================] - 1s 37us/sample - loss: 0.1026 - sparse_categorical_accuracy: 0.9696 - val_loss: 0.1788 - val_sparse_categorical_accuracy: 0.9465Epoch 5/540000/40000 [==============================] - 1s 36us/sample - loss: 0.0841 - sparse_categorical_accuracy: 0.9754 - val_loss: 0.1470 - val_sparse_categorical_accuracy: 0.9581
Out[36]:
 

6.2 ���������������������������

������������������������������epoch���loss���������

In [37]:
class LossHistory(keras.callbacks.Callback): def on_train_begin(self, logs): self.losses = [] def on_epoch_end(self, batch, logs): self.losses.append(logs.get('loss')) print('\nloss:',self.losses[-1]) model = get_compiled_model()callbacks = [ LossHistory()]model.fit(x_train, y_train, epochs=3, batch_size=64, callbacks=callbacks, validation_split=0.2)
 
Train on 40000 samples, validate on 10000 samplesEpoch 1/338528/40000 [===========================>..] - ETA: 0s - loss: 0.3842 - sparse_categorical_accuracy: 0.8918loss: 0.3781926599502563640000/40000 [==============================] - 2s 42us/sample - loss: 0.3782 - sparse_categorical_accuracy: 0.8935 - val_loss: 0.2499 - val_sparse_categorical_accuracy: 0.9256Epoch 2/338720/40000 [============================>.] - ETA: 0s - loss: 0.1810 - sparse_categorical_accuracy: 0.9465loss: 0.1803295243620872440000/40000 [==============================] - 1s 35us/sample - loss: 0.1803 - sparse_categorical_accuracy: 0.9467 - val_loss: 0.1945 - val_sparse_categorical_accuracy: 0.9423Epoch 3/338720/40000 [============================>.] - ETA: 0s - loss: 0.1307 - sparse_categorical_accuracy: 0.9608loss: 0.1305121446251869340000/40000 [==============================] - 1s 35us/sample - loss: 0.1305 - sparse_categorical_accuracy: 0.9610 - val_loss: 0.1679 - val_sparse_categorical_accuracy: 0.9508
Out[37]:
 

7 ���������������������������������

 

������������������������������������������������������������������fit���evaluate()���

7.1������GradientTape������������

GradientTape������������������������������������������������������������������������������GradientTape���������������������������������

In [38]:
# ������������inputs = keras.Input(shape=(784,), name='digits')x = layers.Dense(64, activation='relu', name='dense_1')(inputs)x = layers.Dense(64, activation='relu', name='dense_2')(x)outputs = layers.Dense(10, activation='softmax', name='predictions')(x)model = keras.Model(inputs=inputs, outputs=outputs)# ������������������������optimizer = keras.optimizers.SGD(learning_rate=1e-3)loss_fn = keras.losses.SparseCategoricalCrossentropy()# ������������batch_size = 64train_dataset = tf.data.Dataset.from_tensor_slices((x_train, y_train))train_dataset = train_dataset.shuffle(buffer_size=1024).batch(batch_size)# ������������������for epoch in range(3): print('epoch: ', epoch) for step, (x_batch_train, y_batch_train) in enumerate(train_dataset): # ���������gradient tape, ������������ with tf.GradientTape() as tape: logits = model(x_batch_train) # ������loss loss_value = loss_fn(y_batch_train, logits) # ���loss��������������������� grads = tape.gradient(loss_value, model.trainable_variables) # ��������������������������������� optimizer.apply_gradients(zip(grads, model.trainable_variables)) if step % 200 == 0: print('Training loss (for one batch) at step %s: %s' % (step, float(loss_value))) print('Seen so far: %s samples' % ((step + 1) * 64))
 
epoch:  0Training loss (for one batch) at step 0: 2.3862709999084473Seen so far: 64 samplesTraining loss (for one batch) at step 200: 2.245845317840576Seen so far: 12864 samplesTraining loss (for one batch) at step 400: 2.180447578430176Seen so far: 25664 samplesTraining loss (for one batch) at step 600: 2.0862836837768555Seen so far: 38464 samplesepoch:  1Training loss (for one batch) at step 0: 2.0792737007141113Seen so far: 64 samplesTraining loss (for one batch) at step 200: 1.997469425201416Seen so far: 12864 samplesTraining loss (for one batch) at step 400: 1.7244919538497925Seen so far: 25664 samplesTraining loss (for one batch) at step 600: 1.7059353590011597Seen so far: 38464 samplesepoch:  2Training loss (for one batch) at step 0: 1.6949570178985596Seen so far: 64 samplesTraining loss (for one batch) at step 200: 1.5404092073440552Seen so far: 12864 samplesTraining loss (for one batch) at step 400: 1.4513380527496338Seen so far: 25664 samplesTraining loss (for one batch) at step 600: 1.3362979888916016Seen so far: 38464 samples
 

7.1 ���������������������������������

������������������������������������������������������������������������������������������������������������������

  • ���������������������������������
  • ������������������������������������metric.update_state()
  • ������������������������������metric.result()
  • ������������������������������metric.reset_states()
In [39]:
# ���������������inputs = keras.Input(shape=(784,), name='digits')x = layers.Dense(64, activation='relu', name='dense_1')(inputs)x = layers.Dense(64, activation='relu', name='dense_2')(x)outputs = layers.Dense(10, activation='softmax', name='predictions')(x)model = keras.Model(inputs=inputs, outputs=outputs)optimizer = keras.optimizers.SGD(learning_rate=1e-3)loss_fn = keras.losses.SparseCategoricalCrossentropy()# ������������������.train_acc_metric = keras.metrics.SparseCategoricalAccuracy() val_acc_metric = keras.metrics.SparseCategoricalAccuracy()# ������������batch_size = 64train_dataset = tf.data.Dataset.from_tensor_slices((x_train, y_train))train_dataset = train_dataset.shuffle(buffer_size=1024).batch(batch_size)val_dataset = tf.data.Dataset.from_tensor_slices((x_val, y_val))val_dataset = val_dataset.batch(64)# ���������������������for epoch in range(3): print('Start of epoch %d' % (epoch,)) # ������������������������ for step, (x_batch_train, y_batch_train) in enumerate(train_dataset): with tf.GradientTape() as tape: logits = model(x_batch_train) loss_value = loss_fn(y_batch_train, logits) # ��������������� ������������ grads = tape.gradient(loss_value, model.trainable_variables) optimizer.apply_gradients(zip(grads, model.trainable_variables)) # ������������ train_acc_metric(y_batch_train, logits) # ������ if step % 200 == 0: print('Training loss (for one batch) at step %s: %s' % (step, float(loss_value))) print('Seen so far: %s samples' % ((step + 1) * 64)) # ��������������������������������������� train_acc = train_acc_metric.result() print('Training acc over epoch: %s' % (float(train_acc),)) # ������������ train_acc_metric.reset_states() # ������������ for x_batch_val, y_batch_val in val_dataset: val_logits = model(x_batch_val) # Update val metrics val_acc_metric(y_batch_val, val_logits) # ������������������ val_acc = val_acc_metric.result() val_acc_metric.reset_states() print('Validation acc: %s' % (float(val_acc),))
 
Start of epoch 0Training loss (for one batch) at step 0: 2.3234963417053223Seen so far: 64 samplesTraining loss (for one batch) at step 200: 2.1431407928466797Seen so far: 12864 samplesTraining loss (for one batch) at step 400: 2.11155366897583Seen so far: 25664 samplesTraining loss (for one batch) at step 600: 1.9793719053268433Seen so far: 38464 samplesTraining acc over epoch: 0.3366200029850006Validation acc: 0.5264999866485596Start of epoch 1Training loss (for one batch) at step 0: 2.0552053451538086Seen so far: 64 samplesTraining loss (for one batch) at step 200: 1.9160033464431763Seen so far: 12864 samplesTraining loss (for one batch) at step 400: 1.797502040863037Seen so far: 25664 samplesTraining loss (for one batch) at step 600: 1.626814842224121Seen so far: 38464 samplesTraining acc over epoch: 0.589959979057312Validation acc: 0.6836000084877014Start of epoch 2Training loss (for one batch) at step 0: 1.6038627624511719Seen so far: 64 samplesTraining loss (for one batch) at step 200: 1.4073700904846191Seen so far: 12864 samplesTraining loss (for one batch) at step 400: 1.3236889839172363Seen so far: 25664 samplesTraining loss (for one batch) at step 600: 1.2352226972579956Seen so far: 38464 samplesTraining acc over epoch: 0.7089800238609314Validation acc: 0.7746000289916992
 

7.2 ���������������������������loss

���������������������������������������������������������

In [40]:
##������������������������loss, ���������������������������������������������lossclass ActivityRegularizationLayer(layers.Layer): def call(self, inputs): self.add_loss(1e-2 * tf.reduce_sum(inputs)) return inputs inputs = keras.Input(shape=(784,), name='digits')x = layers.Dense(64, activation='relu', name='dense_1')(inputs)# ������������������������x = ActivityRegularizationLayer()(x)x = layers.Dense(64, activation='relu', name='dense_2')(x)outputs = layers.Dense(10, activation='softmax', name='predictions')(x)model = keras.Model(inputs=inputs, outputs=outputs)logits = model(x_train[:64])print(model.losses)logits = model(x_train[:64])logits = model(x_train[64: 128])logits = model(x_train[128: 192])print(model.losses)
 
[
][
]
In [42]:
# ���loss������������������optimizer = keras.optimizers.SGD(learning_rate=1e-3)for epoch in range(3): print('Start of epoch %d' % (epoch,)) for step, (x_batch_train, y_batch_train) in enumerate(train_dataset): with tf.GradientTape() as tape: logits = model(x_batch_train) loss_value = loss_fn(y_batch_train, logits) # ��������������������� loss_value += sum(model.losses) # ������������������������ grads = tape.gradient(loss_value, model.trainable_variables) optimizer.apply_gradients(zip(grads, model.trainable_variables)) # ������ if step % 200 == 0: print('Training loss (for one batch) at step %s: %s' % (step, float(loss_value))) print('Seen so far: %s samples' % ((step + 1) * 64))
 
Start of epoch 0Training loss (for one batch) at step 0: 2.320131778717041Seen so far: 64 samplesTraining loss (for one batch) at step 200: 2.3046109676361084Seen so far: 12864 samplesTraining loss (for one batch) at step 400: 2.309241771697998Seen so far: 25664 samplesTraining loss (for one batch) at step 600: 2.3098361492156982Seen so far: 38464 samplesStart of epoch 1Training loss (for one batch) at step 0: 2.3076140880584717Seen so far: 64 samplesTraining loss (for one batch) at step 200: 2.307394504547119Seen so far: 12864 samplesTraining loss (for one batch) at step 400: 2.3062784671783447Seen so far: 25664 samplesTraining loss (for one batch) at step 600: 2.3098881244659424Seen so far: 38464 samplesStart of epoch 2Training loss (for one batch) at step 0: 2.3012585639953613Seen so far: 64 samplesTraining loss (for one batch) at step 200: 2.3015058040618896Seen so far: 12864 samplesTraining loss (for one batch) at step 400: 2.3131601810455322Seen so far: 25664 samplesTraining loss (for one batch) at step 600: 2.311933755874634Seen so far: 38464 samples
In [ ]:
 
上一篇:人工智能深度学习入门练习之(22)TensorFlow2教程-用keras构建自己的网络层
下一篇:人工智能深度学习入门练习之(20)TensorFlow2教程-Keras函数式API

发表评论

最新留言

初次前来,多多关照!
[***.217.46.12]2025年04月30日 01时51分13秒