TensorFlow 是一个广泛应用于机器学习和深度学习的开源框架,提供了丰富的功能和工具来构建和训练神经网络模型。
先来 20 个 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') # 训练模型 model.fit(x_train, y_train, epochs=100) # 预测 result = model.predict([x_test])
-
卷积神经网络(CNN):
- 用于图像识别等任务的经典深度学习模型。
import tensorflow as tf # 构建模型 model = tf.keras.Sequential([ tf.keras.layers.Conv2D(32, (3, 3), activation='relu', input_shape=(28, 28, 1)), tf.keras.layers.MaxPooling2D((2, 2)), tf.keras.layers.Flatten(), tf.keras.layers.Dense(10, activation='softmax') ]) model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy']) # 训练模型 model.fit(x_train, y_train, epochs=5) # 预测 result = model.predict([x_test])
-
循环神经网络(RNN):
- 用于处理序列数据的神经网络模型。
import tensorflow as tf # 构建模型 model = tf.keras.Sequential([ tf.keras.layers.Embedding(input_dim=1000, output_dim=64), tf.keras.layers.LSTM(128), tf.keras.layers.Dense(10, activation='softmax') ]) model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy']) # 训练模型 model.fit(x_train, y_train, epochs=5) # 预测 result = model.predict([x_test])
-
生成对抗网络(GAN):
- 用于生成新样本的深度学习模型。
import tensorflow as tf # 构建生成器 generator = tf.keras.Sequential([ tf.keras.layers.Dense(256, input_shape=(100,), activation='relu'), tf.keras.layers.Dense(784, activation='sigmoid'), tf.keras.layers.Reshape((28, 28)) ]) # 构建判别器 discriminator = tf.keras.Sequential([ tf.keras.layers.Flatten(input_shape=(28, 28)), tf.keras.layers.Dense(256, activation='relu'), tf.keras.layers.Dense(1, activation='sigmoid') ]) # 构建GAN模型 gan = tf.keras.Sequential([generator, discriminator]) # 训练GAN模型 gan.compile(optimizer='adam', loss='binary_crossentropy') gan.fit(x_train, y_train, epochs=100)
-
自编码器(Autoencoder):
- 用于数据压缩和解压缩的神经网络模型。
import tensorflow as tf # 构建编码器 encoder = tf.keras.Sequential([ tf.keras.layers.Flatten(input_shape=(28, 28)), tf.keras.layers.Dense(128, activation='relu'), tf.keras.layers.Dense(64, activation='relu'), tf.keras.layers.Dense(32, activation='relu') ]) # 构建解码器 decoder = tf.keras.Sequential([ tf.keras.layers.Dense(64, activation='relu', input_shape=(32,)), tf.keras.layers.Dense(128, activation='relu'), tf.keras.layers.Dense(784, activation='sigmoid'), tf.keras.layers.Reshape((28, 28)) ]) # 构建自编码器模型 autoencoder = tf.keras.Sequential([encoder, decoder]) # 训练自编码器模型 autoencoder.compile(optimizer='adam', loss='binary_crossentropy') autoencoder.fit(x_train, x_train, epochs=10)
-
预训练模型迁移学习:
- 使用预训练的模型进行迁移学习以解决新任务。
import tensorflow as tf # 加载预训练的模型 base_model = tf.keras.applications.MobileNetV2(input_shape=(224, 224, 3), include_top=False, weights='imagenet') # 冻结预训练模型的权重 base_model.trainable = False # 构建新模型 model = tf.keras.Sequential([ base_model, tf.keras.layers.GlobalAveragePooling2D(), tf.keras.layers.Dense(10, activation='softmax') ]) # 训练新模型 model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy']) model.fit(x_train, y_train, epochs=5)
-
K-Means 聚类:
- 使用 TensorFlow 实现 K-Means 聚类算法。
import tensorflow as tf # 数据准备 dataset = tf.constant(data_points, dtype=tf.float32) # 初始化聚类中心 centroids = tf.Variable(tf.slice(tf.random.shuffle(dataset), [0, 0], [k, -1])) # 运行 K-Means 算法 for _ in range(num_steps): # 计算每个点到中心的距离 distances = tf.reduce_sum(tf.square(tf.subtract(tf.expand_dims(dataset, 0), tf.expand_dims(centroids, 1))), 2) # 将每个点分配到最近的聚类中心 assignments = tf.argmin(distances, 0) # 更新聚类中心 means = [] for c in range(k): means.append(tf.reduce_mean(tf.gather(dataset, tf.reshape(tf.where(tf.equal(assignments, c)), [1, -1]))