首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

TensorFlow,一个无敌的深度学习库!

深度学习现在是不是特别火?大街上随便拉一个人都在说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,性能会更好

到这差不多就入门了,后面还有特别多高级玩法,比如自定义层、分布式训练、模型量化啥的,这些等你玩熟悉了基础再说。写代码最重要的就是多练,光看不练啥都记不住,赶紧把代码敲一遍试试吧!

推 荐 阅 读

点赞分享

让钱和爱流向你

  • 发表于:
  • 原文链接https://page.om.qq.com/page/OaU8xEMjaDMv4W-fHhR2Ifbg0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券