- TensorFlow 2 新增特性
- TensorFlow 2 神经网络
- TensorFlow 2 基础语法
- TensorFlow 2 模型保存
TensorFlow 是由谷歌在 2015 年 11 月发布的深度学习开源工具,我们可以用它来快速构建深度神经网络,并训练深度学习模型。2019 年,TensorFlow 正式推出了 2.0 版本,也意味着 TensorFlow 从 1.x 正式过度到 2.x 时代。
TensorFlow 是由谷歌在 2015 年 11 月发布的深度学习开源工具,我们可以用它来快速构建深度神经网络,并训练深度学习模型。2019 年,TensorFlow 正式推出了 2.0 版本,也意味着 TensorFlow 从 1.x 正式过度到 2.x 时代。
本课程中,我们将了解到 TensorFlow 2 的关键变化,并学习使用新的模型构建方法。课程将从 TensorFlow 2 基础语法入手,从简单的神经网络实现逐步过度到深度神经网络实现。配合精心设计的挑战,让你能快速掌握 TensorFlow 2 的使用。
huhuhang 共发布过 68 门课程
查看老师的所有课程 >
因为论文问题,陆续学了huhuhuang老师的多个课程,课程质量都很高。TF2是完全自己要用,课程内容完全可以满足自己所需。教程+挑战结合,深入浅出。
huhuhang老师的课程质量都还不错~近期我要把自己代码里 1.x 的接口都升级成 2.x 的
学习了TensorFlow2.0的新特性,不需要1.X版本的API那样麻烦,只需要像python一样编程就好了。
感觉入门还行吧
学到了迁移学习 写的很好
有所收获,很好! 最终预测结果86%
val_accuracy: 0.9364
对one-hot和label encoding有了直观的理解 (label encoder实验出来的效果不好)
不错,复习了
很好
不错
开心心
!wget -nc "http://labfile.oss.aliyuncs.com/courses/1211/fashion-mnist.zip" !mkdir -p "/root/.keras/datasets/fashion-mnist/" !unzip -o "fashion-mnist.zip" -d "/root/.keras/datasets/fashion-mnist" import tensorflow as tf import numpy as np
(X_train, y_train), (X_test, y_test) = tf.keras.datasets.fashion_mnist.load_data()
对特征进行归一化处理
X_train = X_train / 255 X_test = X_test / 255
对标签进行独热编码
y_train = np.eye(10)[y_train] y_test = np.eye(10)[y_test]
X_train.shape, X_test.shape, y_train.shape, y_test.shape """挑战:按要求构建 LeNet-5 顺序模型""" model_vgg = tf.keras.Sequential([ tf.keras.layers.Conv2D(6, (5, 5), input_shape=(32, 32, 1), activation='relu'), tf.keras.layers.AveragePooling2D(pool_size=(2, 2), strides=(2, 2)), tf.keras.layers.Conv2D(16, (5, 5), activation='relu'), tf.keras.layers.AveragePooling2D(pool_size=(2, 2), strides=(2, 2)), tf.keras.layers.Flatten(), tf.keras.layers.Dense(120, activation='relu'), tf.keras.layers.Dense(84, activation='relu'), tf.keras.layers.Dense(10, activation='softmax') ])
model_vgg.summary() """挑战:完成模型训练过程""" X_train = tf.reshape(X_train, [-1, 28, 28, 1]) X_test = tf.reshape(X_test, [-1, 28, 28, 1]) X_train.shape, X_test.shape X_train_lite = tf.image.resize(X_train, (32, 32)) X_test_lite = tf.image.resize(X_test, (32, 32)) X_train_lite.shape,X_test_lite.shape model_vgg.compile(optimizer=tf.optimizers.Adam(), loss='categorical_crossentropy', metrics=['accuracy'])
训练模型
history = model_vgg.fit(X_train_lite, y_train, epochs=10, batch_size=32, validation_data=(X_test_lite, y_test))
本次实验中,我们实验中 TensorFlow 2 构建了简单的前馈神经网络,并完全手写字符识别分类。特别地,一定要掌握 Eager Execution 的实现过程,而对于 TensorFlow Keras 的使用也应用有充分的理解。
EPOCHS = 50 # 全部数据迭代 20 次 LEARNING_RATE = 0.1 # 学习率
model = Model() # 实例化模型
x = tf.constant(x, dtype=tf.float32) # 转换为张量 y = tf.constant(y, dtype=tf.float32) # 转换为张量
"""挑战:实现多项式回归优化迭代过程""" for epoch in range(EPOCHS): # 迭代次数 # 补充代码 with tf.GradientTape() as tape:
loss = loss_fn(model, x, y) da,db,dc = tape.gradient(loss, [model.a, model.b, model.c]) model.a.assign_sub(LEARNING_RATE * da) model.b.assign_sub(LEARNING_RATE * da) model.c.assign_sub(LEARNING_RATE * da) # 输出计算过程 print(f'Epoch [{epoch}/{EPOCHS}], loss [{loss}]')
model = tf.keras.Sequential() # 新建顺序模型 model.add(tf.keras.layers.Dense(units=1, input_dim=1)) # 添加线性层 model.compile(optimizer='sgd', loss='mse') # 定义损失函数和优化方法 model.fit(X, y, epochs=10, batch_size=32) # 训练模型