前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >大型翻车现场,升级到tensorflow 2.0,我整个人都不好了

大型翻车现场,升级到tensorflow 2.0,我整个人都不好了

作者头像
小白学视觉
发布于 2019-10-21 09:41:09
发布于 2019-10-21 09:41:09
17.9K60
代码可运行
举报
运行总次数:0
代码可运行

版本升级到 tensorflow 2.0 的悲惨经历.....

没事别升级

Tensorflow 2.0发布已经有一段时间了,各种基于新API的教程看上去的确简单易用,一个简单的mnist手写识别只需要下面不到20行代码就OK了,

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import tensorflow as tf

mnist = tf.keras.datasets.mnist

(x_train, y_train),(x_test, y_test) = mnist.load_data()
x_train, x_test = x_train / 255.0, x_test / 255.0

model = tf.keras.models.Sequential([
  tf.keras.layers.Flatten(input_shape=(28, 28)),
  tf.keras.layers.Dense(512, activation=tf.nn.relu),
  tf.keras.layers.Dropout(0.2),
  tf.keras.layers.Dense(10, activation=tf.nn.softmax)
])
model.compile(optimizer='adam',
              loss='sparse_categorical_crossentropy',
              metrics=['accuracy'])

model.fit(x_train, y_train, epochs=5)
model.evaluate(x_test, y_test)

于是我一激动,直接更新到了最新版本,直接执行

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
pip install –upgrade tensorflow-gpu

完成更新,打开以前写的程序,然后我就悲剧了。不管是简单的还是复杂的代码演示,惊讶的发现没有一个可以跑的,最后发现我以前写的tensorflow+Kears教程居然可以跑,结果一跑一个更大的悲剧等着我,直接跟我说CUDA版本不是10.0的版本,版本太低。于是我就认真重新看了tensorflow2.0的版本release说明,发现这么一句话:

Many APIs are either gone or moved in TF 2.0. Some of the major changes include removing tf.app, tf.flags, and tf.logging in favor of the now open-source absl-py, rehoming projects that lived in tf.contrib, and cleaning up the main tf.* namespace by moving lesser used functions into subpackages like tf.math.

我终于对这段话有了很深刻与痛苦的领悟。是真的该删的删,该移的移!该抛弃的抛弃、完全没有考虑到开发者的切身感受。

当你开始运行程序时候,一般会顺序给你下面几个惊喜!

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
AttributeError: module 'tensorflow' has no attribute 'get_variable'
AttributeError: module 'tensorflow' has no attribute 'placeholder'
AttributeError: module 'tensorflow' has no attribute 'Session'

还有没有天理了,这些不是在tensorflow1.x中必须的吗,怎么说没就没有了,告诉你是真的没有,在tensorflow2.0中,如果还想让它有怎么办?

用tf.compat.v1.xxxx上面的那些no attribute错误就会解决了。举例

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
tf.Session()
改为
tf.compat.v1.Session()

然后我很高兴的去继续运行程序,就发现一个大BUG在等我

tensorflow.python.framework.errors_impl.internalerror: cudagetdevice() failed. status: cudageterrorstring symbol not found.

原因:

找不到cudart64_100.dll,这个是CUDA10.0的,我之前安装的是CUDA9.0,tensorflow2.0不支持了,所以这个必须换,怎么办,一顿卸载安装+配置猛如虎,我终于全部搞定了。在windows10系统下面 Tensorflow 2.0 + VS2015 + CUDA10.0 终于工作了,这个我只是改好了第一个代码,这样改下去,什么时候才完,别担心,后来我又发现了tensorflow官方提供的另外一个神器,可以帮助它代码自动的从v1版本转换到v2版本,可能连tensorflow官方自己也不好意思它跨度这么大的版本更新,所以还算提供了一个贴心的工具。直接cmd之后在命令行运行即可实现代码的自动转换:

如果你完全不想改动v1版本的代码,怎么办,这么操作即可:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import tensorflow.compat.v1 as tf
tf.disable_v2_behavior()

亲测好用!但是我有个疑问,如果这样我升级干嘛,就是为了版本号吗?

总之一句话,升级不谨慎、代码靠手改!

后来我又看了看tensorflow2.0的宣传,它说强大、易用、可扩展!但是它没告诉我从tensorflow1.x 到tensorflow 2.0 都是坑!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-10-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 小白学视觉 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
6 条评论
热度
最新
你好,请问输入之后还是不管用怎么办?AttributeError: module 'tensorflow._api.v1.compat' has no attribute 'v2'
你好,请问输入之后还是不管用怎么办?AttributeError: module 'tensorflow._api.v1.compat' has no attribute 'v2'
回复回复点赞举报
点赞!在一堆错误中。。果断使用了disable,感谢作者!
点赞!在一堆错误中。。果断使用了disable,感谢作者!
回复回复点赞举报
您好,我想请教一下最后那两行代码输入之后还是不管用怎么办。。
您好,我想请教一下最后那两行代码输入之后还是不管用怎么办。。
22点赞举报
+1,请问你解决了吗,能告知一下吗
+1,请问你解决了吗,能告知一下吗
回复回复点赞举报
+1不管用
+1不管用
回复回复点赞举报
谢谢!这两天被这个怎惨了。。。
谢谢!这两天被这个怎惨了。。。
回复回复点赞举报
推荐阅读
编辑精选文章
换一批
TensorFlow 2.0 教程(1)
TensorFlow 2.0 终于发布了,看了介绍之后,发现越来越像Keras了。主要的变化在于:
用户7447819
2021/07/23
4750
Tensorflow2.0 教程-初识 TF2.0
TensorFlow 是谷歌基于 DistBelief 进行研发的第二代人工智能学习系统,自 2015 年问世,并在去年 11 月迎来三周岁生日,已经发展为世界上最受欢迎和被广泛采用的机器学习平台之一。
机器视觉CV
2019/07/14
2K0
tensorflow2.0学习1
一:tf安装 清华源安装tf2.0测试版 pip install tensorflow==2.0.0-alpha0 -i https://pypi.tuna.tsinghua.edu.cn/simple some-package 二:测试 建立python文件(我这里是1.py) from __future__ import absolute_import, division, print_function import tensorflow as tf print(tf.__version__) 命令行
我是木木酱呀
2019/04/28
5760
【TensorFlow2.x开发—基础】 简介、安装、入门应用案例
本文介绍最新版本的TensorFlow开发与应用,目前最新版本是TensorFlow2.5.0;首先简单介绍一下TensorFlow,然后安装TensorFlow2,最后使用TensorFlow开发。
一颗小树x
2021/05/15
1.2K0
【TensorFlow2.x开发—基础】 简介、安装、入门应用案例
Tensorflow-1.9发布,提供Linux-Cuda9.1-cudnn7.1.2-whl安装包
看了下Tensorflow发布1.9版本已经10天了,Tensorflow更新着实快,这次更新还是值得我们去更新一下的。
老潘
2023/10/19
2420
Tensorflow-1.9发布,提供Linux-Cuda9.1-cudnn7.1.2-whl安装包
利用Tensorflow2.0实现手写数字识别
前面两节课我们已经简单了解了神经网络的前向传播和反向传播工作原理,并且尝试用numpy实现了第一个神经网络模型。手动实现(深度)神经网络模型听起来很牛逼,实际上却是一个费时费力的过程,特别是在神经网络层数很多的情况下,多达几十甚至上百层网络的时候我们就很难手动去实现了。这时候可能我们就需要更强大的深度学习框架来帮助我们快速实现深度神经网络模型,例如Tensorflow/Pytorch/Caffe等都是非常好的选择,而近期大热的keras是Tensorflow2.0版本中非常重要的高阶API,所以本节课老shi打算先给大家简单介绍下Tensorflow的基础知识,最后借助keras来实现一个非常经典的深度学习入门案例——手写数字识别。废话不多说,马上进入正题。
用户7569543
2020/07/19
1.1K0
利用Tensorflow2.0实现手写数字识别
【TensorFlow2.0】以后我们再也离不开Keras了?
在TensorFlow2.0中,Keras是一个用于构建和训练深度学习模型的高阶 API。因此如果你正在使用TensorFow2.0,那么使用Keras构建深度学习模型是您的不二选择。在Keras API中总共有如下三大块:
用户1508658
2019/07/28
1.3K0
【完结】TensorFlow2.0 快速上手手册
import tensorflow as tf a = tf.constant([1,2,3]) b = tf.constant([4,5,6]) print(a+b)
用户1508658
2019/07/25
3.9K0
【完结】TensorFlow2.0 快速上手手册
TensorFlow 2 quickstart for beginners
Load and prepare the MNIST dataset. Convert the samples from integers to floating-point numbers:
XianxinMao
2021/07/27
2920
Tensorflow日常随笔(一)
TensorFlow is an end-to-end open source platform for machine learning
XianxinMao
2021/07/31
2630
TensorFlow2.0(12):模型保存与序列化
模型训练好之后,我们就要想办法将其持久化保存下来,不然关机或者程序退出后模型就不复存在了。本文介绍两种持久化保存模型的方法:
Ai学习的老章
2019/12/30
1.8K0
Kubeflow Pipeline - 构建一个机器学习 Workflow
前面文章介绍过如何通过 Pipeline 来构建工作流,因为 Kubeflow 主要是在机器学习的场景下使用的,那么本文就简单介绍一下怎么构建一个简单 ML 的工作流。
runzhliu
2020/08/06
1.4K0
Kubeflow Pipeline - 构建一个机器学习 Workflow
TensorFlow高阶API和低阶API
TensorFlow提供了众多的API,简单地可以分类为高阶API和低阶API. API太多太乱也是TensorFlow被诟病的重点之一,可能因为Google的工程师太多了,社区太活跃了~当然后来Google也意识到这个问题,在TensorFlow 2.0中有了很大的改善。本文就简要介绍一下TensorFlow的高阶API和低阶API使用,提供推荐的使用方式。
用户7164815
2020/04/08
2.3K0
TensorFlow高阶API和低阶API
终版API已定型,TensorFlow 2.0 Beta蜕变归来
TensorFlow 发布以来,已经成为全世界最广泛使用的深度学习库。但 Tensorflow 1.x 时代最广受诟病的问题是:学习门槛较高、API 重复且复杂、模型部署和使用不够方便。之后,谷歌下定决心改变这一问题,在今年早些时候,发布了 Tensorflow 2.0 的 Alpha 版本。Alpha 版本一经问世,便受到深度学习研究者、开发者和在校学生的好评,其简洁的 API 和快速易上手的特性吸引了更多用户的加入。今天,Tensorflow 官方发布了 2.0 时代的 Beta 版本,标志着 Tensorflow 这一经典的代码库进一步成熟。
AI算法与图像处理
2019/06/14
7560
终版API已定型,TensorFlow 2.0 Beta蜕变归来
解决read_data_sets (from tensorflow.contrib.learn.python.learn.dat
最近在使用TensorFlow开发深度学习模型时,遇到了一个警告信息:​​read_data_sets (from tensorflow.contrib.learn.python.learn.datasets.mnist) is deprecated and will be removed in a future version​​。经过查阅资料和尝试,我找到了解决这个问题的方法,下面我将分享给大家。
大盘鸡拌面
2023/10/20
4920
微信小程序|调用tensorflow自定义模型
在成功调用官网打包好的tensorflowjs模型后,怎么调用自己的模型呢?又需要做哪些处理呢?
算法与编程之美
2020/06/17
2.7K0
使用Python实现深度学习模型:分布式训练与模型并行化
随着深度学习模型的复杂度和数据量的增加,单一设备的计算能力往往无法满足训练需求。分布式训练和模型并行化技术可以有效地加速模型训练过程,提高计算效率。本文将介绍如何使用Python实现深度学习模型的分布式训练与模型并行化。
Echo_Wish
2024/07/09
2710
使用Python实现深度学习模型:分布式训练与模型并行化
TensorFlow bug激怒社区,用户:我要用PyTorch了!
issue 页面:https://github.com/tensorflow/tensorflow/issues/25175
机器之心
2019/04/30
9140
Tensorflow随笔(一)
In machine learning, to improve something you often need to be able to measure it. TensorBoard is a tool for providing the measurements and visualizations needed during the machine learning workflow. It enables tracking experiment metrics like loss and accuracy, visualizing the model graph, projecting embeddings to a lower dimensional space, and much more.
XianxinMao
2021/08/07
2620
TensorFlow2.0(9):神器级可视化工具TensorBoard
TensorBoard是TensorFlow中的又一神器级工具,想用户提供了模型可视化的功能。我们都知道,在构建神经网络模型时,只要模型开始训练,很多细节对外界来说都是不可见的,参数如何变化,准确率怎么样了,loss还在减小吗,这些问题都很难弄明白。但是,TensorBoard通过结合web应用为我们提供了这一功能,它将模型训练过程的细节以图表的形式通过浏览器可视化得展现在我们眼前,通过这种方式我们可以清晰感知weight、bias、accuracy的变化,把握训练的趋势。
Ai学习的老章
2019/12/25
3.7K0
相关推荐
TensorFlow 2.0 教程(1)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验