阿里指数网站,价格对比网站开发,东莞产品网站建设,本地网站建设教程xampp#x1f914; TensorFlow 简介
TensorFlow 是一个用来搭建和训练神经网络的 Python 工具包#xff0c;谷歌开发的#xff0c;专门用来搞人工智能的。
它可以帮你干这些事#xff1a;
训练模型识别图片搭建聊天机器人做语音识别进行预测、分类、翻译……
如果你想学 AI、… TensorFlow 简介
TensorFlow 是一个用来搭建和训练神经网络的 Python 工具包谷歌开发的专门用来搞人工智能的。
它可以帮你干这些事
训练模型识别图片搭建聊天机器人做语音识别进行预测、分类、翻译……
如果你想学 AI、深度学习TensorFlow 就是你绕不开的框架之一。 TensorFlow 的核心概念
Tensor 概念
Tensor张量是 TensorFlow 名字的来源它是
一维张量 向量比如 [1, 2, 3]二维张量 矩阵比如 [[1,2],[3,4]]三维、四维…… 多维数组
用 Python/Numpy 的话说就是Tensor 高维数组
TensorFlow 就是围绕 “Tensor 的流动” 来设计的把 Tensor 放进图里经过各种操作最后输出结果。
Graph概念
TensorFlow 早期版本是构建一个静态“计算图”
每个操作加减乘除、神经网络层是一个“节点”节点之间的数据Tensor是“边” 就像一个拼装好的电路板数据流从输入进来经过图中一系列变换输出结果。 在 2.x 版本之后TensorFlow 更偏向“动态图”即时执行类似 PyTorch更灵活了。
️ 安装 TensorFlow
pip install tensorflow安装完之后你就可以在 Python 里导入
import tensorflow as tf
print(tf.__version__)示例 1最简单的神经网络
我们用 TensorFlow 搭一个最基础的模型来识别手写数字MNIST 数据集
import tensorflow as tf
from tensorflow.keras import layers, models
from tensorflow.keras.datasets import mnist# 加载数据
(x_train, y_train), (x_test, y_test) mnist.load_data()
x_train x_train / 255.0
x_test x_test / 255.0# 建立模型
model models.Sequential([layers.Flatten(input_shape(28, 28)), # 把28x28图片拉平为784维向量layers.Dense(128, activationrelu), # 第一层全连接128个神经元layers.Dropout(0.2), # 丢弃层防止过拟合layers.Dense(10, activationsoftmax) # 输出层10类
])# 编译模型
model.compile(optimizeradam,losssparse_categorical_crossentropy,metrics[accuracy])# 训练模型
model.fit(x_train, y_train, epochs5)# 测试模型
model.evaluate(x_test, y_test)输出如下
Epoch 1/5
60000/60000 [] - 5s 83us/sample - loss: 0.3 - accuracy: 0.91
...是不是很简单几行代码就能搭建出一个基本的分类神经网络 示例 2自定义神经网络
我们自己写一个带两个隐藏层的网络
model tf.keras.Sequential()
model.add(layers.Dense(64, activationrelu, input_shape(784,)))
model.add(layers.Dense(64, activationrelu))
model.add(layers.Dense(10, activationsoftmax))训练方法与上面完全一样。 示例 3保存和加载模型
训练好了想保存
model.save(my_model.h5)下次直接加载
model tf.keras.models.load_model(my_model.h5)示例 4预测新数据
pred model.predict(x_test[0:1]) # 对第一张图片做预测
print(pred)
print(预测结果, tf.argmax(pred, axis1).numpy())示例 5自定义训练循环
loss_fn tf.keras.losses.SparseCategoricalCrossentropy()
optimizer tf.keras.optimizers.Adam()for epoch in range(5):for i in range(len(x_train)):with tf.GradientTape() as tape:x x_train[i:i1]y y_train[i:i1]pred model(x)loss loss_fn(y, pred)grads tape.gradient(loss, model.trainable_weights)optimizer.apply_gradients(zip(grads, model.trainable_weights))优势总结
特性描述跨平台可以在 CPU、GPU、以及TPUAI 上运行自动求导计算导数超方便可视化TensorBoard 可以图形化训练过程模型部署TF Serving / Lite / JS 都支持社区活跃文档多、教程多、开源项目多 学习建议
学会基本的 Python 和 Numpy理解神经网络基础概念激活函数、损失函数、前向/反向传播看 TensorFlow 官方教程https://www.tensorflow.org/tutorialsB 站、YouTube 关键词搜索“TensorFlow 入门实战”多模仿、多改代码、多练习 推荐资料
《Deep Learning with PythonKeras作者写的》TensorFlow 官方教程https://www.tensorflow.org/tutorials中文版《动手学深度学习》配合 tf.keras 使用GitHub 上的 tensorflow/models 项目 最后的话
TensorFlow 虽然刚开始看起来有点“重量级”但一旦掌握基本套路建模效率很高非常适合搞工业级项目。 不怕不会就怕不写。