深度学习现在是不是特别火?大街上随便拉一个人都在说AI、机器学习。不过说实话,要真正入门深度学习,得有个靠谱的工具才行。TensorFlow就是这样一个超级好使的深度学习框架,它不光能帮你搭建各种花里胡哨的神经网络,还特别照顾新手,有一大堆现成的模型和工具可以用。
安装配置超简单
装TensorFlow贼简单,一行命令就搞定:
1pip install tensorflow
要验证是不是装好了,试试这个:
1import tensorflow as tf
2print(tf.__version__) # 输出当前TensorFlow版本
小贴士:
建议用Python 3.7以上的版本
装之前最好先建个虚拟环境,避免把主环境搞乱
有N卡的同学记得装GPU版本,训练速度能快好几倍
张量:TensorFlow的核心概念
张量听着挺吓人,其实就是个多维数组,跟NumPy的array差不多。看代码:
1# 创建一些简单的张量
2scalar = tf.constant(100) # 标量,0维张量
3vector = tf.constant([1, 2, 3]) # 向量,1维张量
4matrix = tf.constant([[1, 2], [3, 4]]) # 矩阵,2维张量
6# 张量运算
7a = tf.constant([[1, 2], [3, 4]])
8b = tf.constant([[5, 6], [7, 8]])
9print(tf.add(a, b)) # 矩阵加法
10print(tf.matmul(a, b)) # 矩阵乘法
动手搭个简单的神经网络
光说不练假把式,咱们来整个最简单的神经网络,预测一下房价:
1import tensorflow as tf
2import numpy as np
4# 准备训练数据
5house_size = np.array([50, 80, 100, 120, 150], dtype=float)
6house_price = np.array([100, 150, 180, 210, 250], dtype=float)
8# 搭建模型
9model = tf.keras.Sequential([
11])
13# 编译模型
14model.compile(optimizer='sgd', loss='mse')
16# 训练
17model.fit(house_size, house_price, epochs=100, verbose=0)
19# 预测
20print(f“房子面积110平米,预测价格:{model.predict([110]).flatten()[0]:.2f}万”)
小贴士:
实际项目中数据量肯定得大得多
这么简单的模型只是为了演示,实战中网络结构会复杂很多
记得对数据做归一化,不然训练效果可能不太好
玩转预训练模型
TF最爽的就是有一堆现成的预训练模型可以用,比如图像分类:
4import numpy as np
6# 加载预训练模型
7model = MobileNetV2(weights='imagenet')
9# 加载并处理图片(假设有个test.jpg)
10img = image.load_img('test.jpg', target_size=(224, 224))
11x = image.img_to_array(img)
12x = np.expand_dims(x, axis=0)
13x = preprocess_input(x)
15# 预测
16preds = model.predict(x)
17results = decode_predictions(preds, top=3)[0]
18for name, desc, score in results:
19 print(f“{desc}:{score:.2%}”)
模型保存和加载
模型训练好了,总不能每次都重新训练吧?TF提供了超简单的保存和加载功能:
1# 保存模型
4# 加载模型
小贴士:
保存模型时最好带上版本号
记得把预处理的代码也一起保存下来
部署的时候可以考虑用TF Serving,性能会更好
到这差不多就入门了,后面还有特别多高级玩法,比如自定义层、分布式训练、模型量化啥的,这些等你玩熟悉了基础再说。写代码最重要的就是多练,光看不练啥都记不住,赶紧把代码敲一遍试试吧!
推 荐 阅 读
点赞分享
让钱和爱流向你
领取专属 10元无门槛券
私享最新 技术干货