人工智能应用工程师技能提升系列1、——TensorFlow2
目录
TensorFlow与TensorFlow 2的主要区别体现在以下几个方面:
tensorflow2介绍
这里先说一下选择使用tensorflow2讲解的原因,在对比一下同类型的一个优势。由于我们这个系列的目标是学习,大家使用的都是win系统的电脑,故而这里选择tensorflow2方便得多。当前最新的版本是2.15
官网(偶尔打不开): https://www.tensorflow.org/
中文网站: https://tensorflow.google.cn
可以在学习这个下拉菜单中找到官方给的可成内容,对应的还有API啥的,很方便。
TensorFlow与TensorFlow 2的主要区别体现在以下几个方面:
1. 计算图执行模式:TensorFlow 1.x主要使用静态计算图,需要先构建计算图,然后通过Session执行。而TensorFlow 2.x默认使用Eager Execution(即动态图执行模式),这使得操作更加直观和易于调试,开发效率更高。同时,TensorFlow 2.x也支持通过`tf.function`将动态图代码转化为静态图模式,兼顾运行效率。
2. API简化:相比于TensorFlow 1.x,TensorFlow 2.x删除了许多旧的API,并对一些API进行了合并和简化。例如,TensorFlow 2.x中,Keras被确立为官方的高级API,使得模型的构建和训练更加简洁明了。
3. 兼容性:虽然TensorFlow 2.x进行了许多改进,但它仍然需要考虑与TensorFlow 1.x的兼容性。为此,TensorFlow 2.x提供了一个兼容模块`tf.compat.v1`,使得大部分TensorFlow 1.x的代码可以在TensorFlow 2.x中运行。
总的来说,TensorFlow 2.x在易用性、开发效率和运行效率方面都进行了显著的改进,同时保持了与TensorFlow 1.x的兼容性。这使得开发者可以更方便地进行深度学习相关的工作。所以本课程内容选择的是TensorFlow2进行具体的操作讲解。
tensorflow2优势对比PyTorch
TensorFlow 2与PyTorch是两个流行的深度学习框架,它们都有各自的优势。以下是对TensorFlow 2与PyTorch的优势的详细描述:
TensorFlow 2的优势:
1. 工业级部署:移动端和嵌入式部署: TensorFlow在移动端和嵌入式设备上的部署能力优于PyTorch,对于Android或iOS平台,只需要很小的工作量。
高性能服务器端部署: TensorFlow Serving可以轻松地进行热插拔模型,而不会使服务失效,这在高性能服务器端部署时是一个显著优点。2. 静态计算图优化:尽管TensorFlow 2默认使用动态图执行模式,但它仍然支持静态计算图的优化。对于一些需要高性能的场景,静态计算图可以提供更快的执行速度。
3. 广泛的社区支持和生态系统:TensorFlow作为一个较早的深度学习框架,拥有庞大的社区和丰富的生态系统,包括许多预训练模型、工具和库。
PyTorch的优势:
1. 动态计算图:PyTorch使用动态计算图,这意味着在构建神经网络时可以使用常见的Python语句(如if、while、for-loop),从而使网络构建过程更加直观和易于调试。
2. 易于使用的API:PyTorch的API设计非常直观,易于上手。它更加符合人类的思考过程,方便查看、修改中间变量的值。
3. 强大的GPU加速支持:PyTorch对GPU的支持非常出色,能够充分利用GPU进行加速计算。
TensorFlow 2和PyTorch各有优势,选择哪个框架取决于您的具体需求。如果您更关注工业级部署、静态计算图优化和广泛的生态系统支持,TensorFlow 2可能是更好的选择。而如果您更看重直观的动态计算图、易于使用的API和强大的GPU支持,那么PyTorch可能更适合您。
工具使用
这里使用的是【PyCharm Community Edition 2023.1.4】,社区版本免费用啊,用于学习绝对OK,python版本是3.9。
安装tensrflow
或者直接在代码中
ALT+回车,直接会出现安装提示,回车即可。
安装需要一些时间。
版本校验——tensorflow2
必须是这个版本,一定不能是1的,所以我们需要单独输出看看。
直接运行可以看到对应的版本显示:
tensorflow常量constant
tensorflow基础数学计算
这里使用的时候例如下面是整数类型就都得是整数类型,不能出现浮点数什么的。
平方计算
这里需要注意匹配数据类型。
最终效果:
tensorflow变量Variable
可以直接查看到结果,这里的numpy是函数,需要添加一对小括号。
API文档
点击打开文档可以直接查阅:
tensorflow2测试——构建一个线性模型
根据100个随机样本找出合适的w与b值,使得y=wx+b;
大致操作过程:
- 读取数据
- 构造一个线性模型 y=wx+b
- 构造损失函数
- 最小化方差(训练)
- 性能评估
csv文件快速生成:
=RANDBETWEEN(100000,999999)/1000000
=RANDBETWEEN(400000,599999)/100000
基本分析
效果图:
构造损失函数
最小化方差优化
训练效果
训练100遍效果:
训练1000遍最终结果:
总结
最后从效果上看还是OK的,数据我准备的一般,没有成线性,毕竟是随机搞的,如果有兴趣的话可以做一个更贴近的随机数线性数据效果会更好的呢。
- 点赞
- 收藏
- 关注作者
评论(0)