学习目标:
tensorflow练习
学习产出:
import numpy as np
import tensorflow as tf
from sklearn.datasets import load_iris
data = load_iris()
iris_data = data.data
iris_target = data.target
iris_target = np.float32(tf.keras.utils.to_categorical(iris_target,num_classes=3))
iris_data = tf.data.Dataset.from_tensor_slices(iris_data).batch(50)
iris_target = tf.data.Dataset.from_tensor_slices(iris_target).batch(50)
model = tf.keras.models.Sequential()
model.add(tf.keras.layers.Dense(32,activation='relu'))
model.add(tf.keras.layers.Dense(64,activation='relu'))
model.add(tf.keras.layers.Dense(3,activation='softmax'))
opt = tf.optimizers.Adam(1e-3)
for epoch in range(1000):
for _data,label in zip(iris_data,iris_target):
with tf.GradientTape() as tape:
logits = model(_data)
loss_values = tf.reduce_mean(tf.keras.losses.categorical_crossentropy(y_true=label,y_pred=logits))
grads = tape.gradient(loss_values,model.trainable_variables)
opt.apply_gradients(zip(grads,model.trainable_variables))
print('Training loss is :',loss_values.numpy())