掌握TensorFlow,从这些实用案例开始入门

2026-08-24 0 阅读

TensorFlow是Google开发的一个开源机器学习框架,广泛应用于各种机器学习任务中。对于初学者来说,从实际案例入手是快速掌握TensorFlow的有效方法。以下是一些实用的TensorFlow案例,帮助您从入门到精通。

1. 线性回归

线性回归是机器学习中的一种基础算法,用于预测连续值。以下是一个使用TensorFlow实现线性回归的简单例子:

import tensorflow as tf

# 创建模型
model = tf.keras.Sequential([
    tf.keras.layers.Dense(units=1, input_shape=[1])
])

# 编译模型
model.compile(optimizer='sgd', loss='mean_squared_error')

# 训练模型
x_train = [[1], [2], [3], [4]]
y_train = [[1], [2], [3], [4]]
model.fit(x_train, y_train, epochs=1000)

# 预测
x_predict = [[5]]
y_predict = model.predict(x_predict)
print(y_predict)

2. 逻辑回归

逻辑回归是用于二分类问题的算法。以下是一个使用TensorFlow实现逻辑回归的例子:

import tensorflow as tf

# 创建模型
model = tf.keras.Sequential([
    tf.keras.layers.Dense(units=1, activation='sigmoid', input_shape=[1])
])

# 编译模型
model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy'])

# 训练模型
x_train = [[1], [2], [3], [4], [5]]
y_train = [[0], [0], [1], [1], [0]]
model.fit(x_train, y_train, epochs=1000)

# 预测
x_predict = [[6]]
y_predict = model.predict(x_predict)
print(y_predict)

3. 卷积神经网络(CNN)

卷积神经网络(CNN)在图像识别、分类等任务中表现出色。以下是一个使用TensorFlow实现CNN的例子:

import tensorflow as tf
from tensorflow.keras.layers import Conv2D, MaxPooling2D, Flatten, Dense

# 创建模型
model = tf.keras.Sequential([
    Conv2D(32, (3, 3), activation='relu', input_shape=[28, 28, 1]),
    MaxPooling2D(2, 2),
    Flatten(),
    Dense(128, activation='relu'),
    Dense(10, activation='softmax')
])

# 编译模型
model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])

# 训练模型
x_train = tf.keras.preprocessing.image_dataset_from_directory(
    'path_to_dataset',
    validation_split=0.2,
    subset="training",
    seed=123,
    image_size=(28, 28),
    batch_size=32)

y_train = tf.keras.utils.to_categorical(y_train, num_classes=10)

model.fit(x_train, y_train, epochs=10)

# 预测
x_test = tf.keras.preprocessing.image_dataset_from_directory(
    'path_to_dataset',
    validation_split=0.2,
    subset="validation",
    seed=123,
    image_size=(28, 28),
    batch_size=32)

y_test = tf.keras.utils.to_categorical(y_test, num_classes=10)

test_loss, test_acc = model.evaluate(x_test, y_test, verbose=2)
print('\nTest accuracy:', test_acc)

4. 循环神经网络(RNN)

循环神经网络(RNN)在处理序列数据方面表现出色。以下是一个使用TensorFlow实现RNN的例子:

import tensorflow as tf
from tensorflow.keras.layers import SimpleRNN, Dense

# 创建模型
model = tf.keras.Sequential([
    SimpleRNN(50, input_shape=[None, 1]),
    Dense(1)
])

# 编译模型
model.compile(optimizer='adam', loss='mean_squared_error')

# 训练模型
x_train = tf.random.normal([100, 10, 1])
y_train = tf.random.normal([100, 1])

model.fit(x_train, y_train, epochs=100)

# 预测
x_predict = tf.random.normal([10, 1])
y_predict = model.predict(x_predict)
print(y_predict)

通过以上案例,您可以初步了解TensorFlow的基本用法。在实际应用中,您可以根据自己的需求调整模型结构和参数。祝您在学习TensorFlow的道路上越走越远!

分享到: