In [ ]:
#@title Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
In [ ]:
import tensorflow as tf
In [ ]:
mnist = tf.keras.datasets.mnist
(x_train, y_train), (x_test, y_test) = mnist.load_data()
x_train, x_test = x_train / 255.0, x_test / 255.0
In [ ]:
model = tf.keras.models.Sequential([
tf.keras.layers.Flatten(input_shape=(28, 28)),
tf.keras.layers.Dense(128, activation='relu'),
tf.keras.layers.Dropout(0.2),
tf.keras.layers.Dense(10)
])
In [ ]:
predictions = model(x_train[:1]).numpy()
predictions
In [ ]:
tf.nn.softmax(predictions).numpy()
In [ ]:
loss_fn = tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True)
In [ ]:
loss_fn(y_train[:1], predictions).numpy()
In [ ]:
model.compile(optimizer='adam',
loss=loss_fn,
metrics=['accuracy'])
In [ ]:
model.fit(x_train, y_train, epochs=5)
In [ ]:
model.evaluate(x_test, y_test, verbose=2)
In [ ]:
probability_model = tf.keras.Sequential([
model,
tf.keras.layers.Softmax()
])
In [ ]:
probability_model(x_test[:5])