以下是一些 TensorFlow 的代码示例,涵盖了不同的使用场景,包括基本的线性回归、简单的神经网络分类以及使用卷积神经网络进行图像分类等。
1. 线性回归示例
这是一个使用 TensorFlow 实现线性回归的简单示例,用于拟合一条直线:y = Wx + b
import tensorflow as tf
import numpy as np
import matplotlib.pyplot as plt
# 生成模拟数据
np.random.seed(0)
X = np.linspace(-1, 1, 100)
np.random.shuffle(X)
Y = 0.5 * X + 2 + np.random.normal(0, 0.05, (100, ))
X_train, Y_train = X[:70], Y[:70]
X_test, Y_test = X[70:], Y[70:]
# 定义模型参数
W = tf.Variable(np.random.randn(), name='weight')
b = tf.Variable(np.random.randn(), name='bias')
# 定义模型
def linear_regression(x):
return W * x + b
# 定义损失函数
def mean_square(y_pred, y_true):
return tf.reduce_mean(tf.square(y_pred - y_true))
# 定义优化器
optimizer = tf.optimizers.SGD(learning_rate=0.01)
# 训练模型
for step in range(200):
with tf.GradientTape() as tape:
pred = linear_regression(X_train)
loss = mean_square(pred, Y_train)
gradients = tape.gradient(loss, [W, b])
optimizer.apply_gradients(zip(gradients, [W, b]))
if (step + 1) % 20 == 0:
print("Step: %i, loss: %f, W: %f, b: %f" % (step + 1, loss, W.numpy(), b.numpy()))
# 测试模型
pred = linear_regression(X_test)
plt.scatter(X_test, Y_test, label='Data')
plt.plot(X_test, pred, color='red', label='Predicted line')
plt.legend()
plt.show()
2. 神经网络分类示例
这是一个使用 TensorFlow 构建简单神经网络进行分类的示例。
import tensorflow as tf
from tensorflow.keras import layers, models
import numpy as np
# 生成模拟数据
np.random.seed(0)
X = np.random.rand(100, 2)
Y = np.where(X[:, 0] + X[:, 1] > 1, 1, 0)
# 构建模型
model = models.Sequential([
layers.Dense(10, activation='relu', input_shape=(2,)),
layers.Dense(1, activation='sigmoid')
])
# 编译模型
model.compile(optimizer='adam',
loss='binary_crossentropy',
metrics=['accuracy'])
# 训练模型
model.fit(X, Y, epochs=100, batch_size=10)
# 评估模型
loss, accuracy = model.evaluate(X, Y)
print(f"Loss: {loss}, Accuracy: {accuracy}")
3. 卷积神经网络图像分类示例
这是一个使用 TensorFlow 构建卷积神经网络(CNN)进行图像分类的示例,使用的是 CIFAR-10 数据集。
import tensorflow as tf
from tensorflow.keras import datasets, layers, models
# 加载 CIFAR-10 数据集
(train_images, train_labels), (test_images, test_labels) = datasets.cifar10.load_data()
# 归一化像素值
train_images, test_images = train_images / 255.0, test_images / 255.0
# 构建卷积神经网络模型
model = models.Sequential([
layers.Conv2D(32, (3, 3), activation='relu', input_shape=(32, 32, 3)),
layers.MaxPooling2D((2, 2)),
layers.Conv2D(64, (3, 3), activation='relu'),
layers.MaxPooling2D((2, 2)),
layers.Conv2D(64, (3, 3), activation='relu'),
layers.Flatten(),
layers.Dense(64, activation='relu'),
layers.Dense(10)
])
# 编译模型
model.compile(optimizer='adam',
loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True),
metrics=['accuracy'])
# 训练模型
history = model.fit(train_images, train_labels, epochs=10,
validation_data=(test_images, test_labels))
# 评估模型
test_loss, test_acc = model.evaluate(test_images, test_labels, verbose=2)
print(f"Test accuracy: {test_acc}")
这些示例展示了 TensorFlow 在不同机器学习任务中的应用,从简单的线性回归到复杂的图像分类任务。希望这些示例能帮助你更好地理解和使用 TensorFlow。
标签:layers,示例,np,train,tf,test,TensorFlow From: https://blog.csdn.net/2301_77113835/article/details/145129071