关于TensorFlow新旧版本函数接口变化详解

TensorFlow版本更新太快 了,所以导致一些以前接口函数不一致,会报错。

这里总结了一下自己犯的错,以防以后再碰到,也可以给别人参考。

首先我的cifar10的代码都是找到当前最新的tf官网给的,所以后面还有新的tf出来改动了的话,可能又会失效了。

1.python3:(unicode error) 'utf-8' codec can't decode

刚开始执行的时候就报这个错,很郁闷后来发现是因为我用多个编辑器编写,

保存。导致不同编辑器编码解码不一致,会报错。所以唯一的办法全程用

一个编辑器去写,保存。或者保证都是用一种方式编码解码就OK了

一:Tersorflow CIFAR-10 训练示例报错及解决方案(1)

1.AttributeError:'module' object has noattribute 'random_crop'

##解决方案:

将distorted_image= tf.image.random_crop(reshaped_image,[height, width])改为:

distorted_image = tf.random_crop(reshaped_image,[height,width,3])

2. AttributeError:'module'object has no attribute 'SummaryWriter'

##解决方案:tf.train.SummaryWriter改为:tf.summary.FileWriter

3. AttributeError:'module'object has no attribute 'summaries'

解决方案: tf.merge_all_summaries()改为:summary_op =tf.summaries.merge_all()

4. AttributeError: 'module' object hasno attribute'histogram_summary

tf.histogram_summary(var.op.name,var)改为: tf.summaries.histogram()

5. AttributeError: 'module' object hasno attribute'scalar_summary'

tf.scalar_summary(l.op.name+ ' (raw)', l)

##解决方案:

tf.scalar_summary('images',images)改为:tf.summary.scalar('images', images)

tf.image_summary('images',images)改为:tf.summary.image('images', images)

6. ValueError: Only call`softmax_cross_entropy_with_logits` withnamed arguments (labels=...,logits=..., ...)

##解决方案:

 cifar10.loss(labels, logits) 改为:cifar10.loss(logits=logits,labels=labels)

 cross_entropy=tf.nn.softmax_cross_entropy_with_logits(logits,dense_labels,name='cross_entropy_per_example')

改为:

 cross_entropy =tf.nn.softmax_cross_entropy_with_logits(logits=logits, labels=dense_labels,name='cross_entropy_per_example')

7. TypeError: Using a `tf.Tensor` as a Python `bool`isnot allowed. Use `if t is not None:` instead of `if t:` to test if a tensorisdefined, and use TensorFlow ops such as tf.cond to execute subgraphsconditionedon the value of a tensor.

##解决方案:

if grad: 改为 if grad is not None:

8. ValueError: Shapes (2, 128, 1) and () are incompatible

###解决方案:

concated = tf.concat(1, [indices, sparse_labels])改为:

concated= tf.concat([indices, sparse_labels], 1)

9. 报错:(这个暂时没有遇到)

File"/home/lily/work/Tensorflow/CIRFAR-10/tensorflow.cifar10-master/cifar10_input.py",line83, in read_cifar10

  result.key, value=reader.read(filename_queue)

 File"/usr/local/lib/python2.7/dist-packages/tensorflow/python/ops/io_ops.py",line326, in read

queue_ref = queue.queue_ref

AttributeError: 'str' object hasno attribute 'queue_ref'

###解决方案:

由于训练样本的路径需要修改,给cifar10_input.py中data_dir赋值为本地数据所在的文件夹

二:Tersorflow CIFAR-10 训练示例报错及解决方案

1,File"tensorflow/models/slim/preprocessing/cifarnet_preproces.py", line70, in preprocess_for_train
return tf.image.per_image_whitening(distorted_image)
AttributeError: 'module' object has no attribute'per_image_whitening'

以上这篇关于TensorFlow新旧版本函数接口变化详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • 解决Keras 与 Tensorflow 版本之间的兼容性问题

    在利用Keras进行实验的时候,后端为Tensorflow,出现了以下问题: 1. 服务器端激活Anaconda环境跑程序时,实验结果很差. 环境:tensorflow 1.4.0,keras 2.1.5 2. 服务器端未激活Anaconda环境跑程序时,实验结果回到正常值. 环境:tensorflow 1.7.0,keras 2.0.8 3. 自己PC端跑相同程序时,实验结果回到正常值. 环境:tensorflow 1.6.0,keras 2.1.5 怀疑实验结果的异常性是由于Keras和Te

  • TensorFlow自定义损失函数来预测商品销售量

    在预测商品销量时,如果预测多了(预测值比真实销量大),商家损失的是生产商品的成本:而如果预测少了(预测值比真实销量小),损失的则是商品的利润.因为一般商品的成本和商品的利润不会严格相等,比如如果一个商品的成本是1元,但是利润是10元,那么少预测一个就少挣10元:而多预测一个才少挣1元,所以如果神经网络模型最小化的是均方误差损失函数,那么很有可能此模型就无法最大化预期的销售利润. 为了最大化预期利润,需要将损失函数和利润直接联系起来,需要注意的是,损失函数定义的是损失,所以要将利润最大化,定义的损

  • 浅谈Tensorflow由于版本问题出现的几种错误及解决方法

    1.AttributeError: 'module' object has no attribute 'rnn_cell' S:将tf.nn.rnn_cell替换为tf.contrib.rnn 2.TypeError: Expected int32, got list containing Tensors of type '_Message' instead. S:由于tf.concat的问题,将tf.concat(1, [conv1, conv2]) 的格式替换为tf.concat( [con

  • TensorFlow损失函数专题详解

    一.分类问题损失函数--交叉熵(crossentropy) 交叉熵刻画了两个概率分布之间的距离,是分类问题中使用广泛的损失函数.给定两个概率分布p和q,交叉熵刻画的是两个概率分布之间的距离: 我们可以通过Softmax回归将神经网络前向传播得到的结果变成交叉熵要求的概率分布得分.在TensorFlow中,Softmax回归的参数被去掉了,只是一个额外的处理层,将神经网络的输出变成一个概率分布. 代码实现: import tensorflow as tf y_ = tf.constant([[1.

  • tensorflow自定义激活函数实例

    前言:因为研究工作的需要,要更改激活函数以适应自己的网络模型,但是单纯的函数替换会训练导致不能收敛.这里还有些不清楚为什么,希望有人可以给出解释.查了一些博客,发现了解决之道.下面将解决过程贴出来供大家指正. 1.背景 之前听某位老师提到说tensorflow可以在不给梯度函数的基础上做梯度下降,所以尝试了替换.我的例子时将ReLU改为平方.即原来的激活函数是 现在换成 单纯替换激活函数并不能较好的效果,在我的实验中,迭代到一定批次,准确率就会下降,最终降为10%左右保持稳定.而事实上,这中间最

  • tensorflow 自定义损失函数示例代码

    这个自定义损失函数的背景:(一般回归用的损失函数是MSE, 但要看实际遇到的情况而有所改变) 我们现在想要做一个回归,来预估某个商品的销量,现在我们知道,一件商品的成本是1元,售价是10元. 如果我们用均方差来算的话,如果预估多一个,则损失一块钱,预估少一个,则损失9元钱(少赚的). 显然,我宁愿预估多了,也不想预估少了. 所以,我们就自己定义一个损失函数,用来分段地看,当yhat 比 y大时怎么样,当yhat比y小时怎么样. (yhat沿用吴恩达课堂中的叫法) import tensorflo

  • 关于TensorFlow新旧版本函数接口变化详解

    TensorFlow版本更新太快 了,所以导致一些以前接口函数不一致,会报错. 这里总结了一下自己犯的错,以防以后再碰到,也可以给别人参考. 首先我的cifar10的代码都是找到当前最新的tf官网给的,所以后面还有新的tf出来改动了的话,可能又会失效了. 1.python3:(unicode error) 'utf-8' codec can't decode 刚开始执行的时候就报这个错,很郁闷后来发现是因为我用多个编辑器编写, 保存.导致不同编辑器编码解码不一致,会报错.所以唯一的办法全程用 一

  • 对Python3.x版本print函数左右对齐详解

    数字的情况: a = 5 , b = 5.2,c = "123456789" 最普通的右对齐:print("%3d"%a) 输出 5(详情:5前面两个空格) print("%10.3f"%b) 输出 5.200(详情:10代表整个输出占10个空间,小数点空间也算,3代表小数点后有三位,若不够则补上0) print("%.3f"%b) 输出5.200(详情:代表小数点后面占三位,不够则用0补齐) 字符串的情况: 与数字一样,只不

  • 对tensorflow 中tile函数的使用详解

    tensorflow中tile是用来复制tensor的指定维度,具体看下面的代码: import tensorflow as tf a = tf.constant([[1, 2], [3, 4], [5, 6]], dtype=tf.float32) a1 = tf.tile(a, [2, 2]) with tf.Session() as sess: print(sess.run(a1)) 结果就是: [[ 1. 2. 1. 2.] [ 3. 4. 3. 4.] [ 5. 6. 5. 6.] [

  • 何时/使用 Vue3 render 函数的教程详解

    什么是 DOM? 如果我们把这个 HTML 加载到浏览器中,浏览器创建这些节点,用来显示网页.所以这个HTML映射到一系列DOM节点,然后我们可以使用JavaScript进行操作.例如: let item = document.getElementByTagName('h1')[0] item.textContent = "New Heading" VDOM 网页可以有很多DOM节点,这意味着DOM树可以有数千个节点.这就是为什么我们有像Vue这样的框架,帮我们干这些重活儿,并进行大量

  • Tensorflow 2.1完成对MPG回归预测详解

    目录 前言 1. 获取 Auto MPG 数据并进行数据的归一化处理 2. 对数据进行处理 搭建深度学习模型 使用 EarlyStoping 完成模型训练 使用测试数据对模型进行评估 使用模型进行预测 展示没有进行归一化操作的训练过程 前言 本文的主要内容是使用 cpu 版本的 tensorflor-2.1 完成对 Auto MPG 数据集的回归预测任务. 本文大纲 获取 Auto MPG 数据 对数据进行处理 搭建深度学习模型.并完成模型的配置和编译 使用 EarlyStoping 完成模型训

  • webpack5新特性Asset Modules资源模块详解

    目录 正文 图片打包(asset/resource) publicPath asset/inline 模块 asset 模块 asset/source 模块 正文 webpack 可以将很多类型的文件写入最后打包的js文件,写入的方法有两种,一个是 Asset Modules 另一个是 Loaders 这一篇我们就来讨论 Asset Modules.Asset Modules(资源模块)是webpack5的新特性,它允许使用资源文件(字体,图标等)而无需配置额外 loader, webpack低

  • PHP 传输会话curl函数的实例详解

    PHP 传输会话curl函数的实例详解 前言: 接手公司项目PC端负责人的重担,责任担当重大:从需求分析,画流程图,建表,编码,测试修bug,上线维护等我一个光杆司令一人完成(当然还有一个技术不错的前端配合,感谢主管的帮助),虽然累点加班多点但感觉还行吧,公司都是一个鸟样. 闲话不多说了,因为项目中经常需要调取java那边的接口,既然涉及到请求接口那就有了http的请求方式,PHP常见的是GET/POST两种当然还有其他的比如put等,java那边经常用到GET/POST/PUT/DELETE等

  • python 函数中的内置函数及用法详解

    今天来介绍一下Python解释器包含的一系列的内置函数,下面表格按字母顺序列出了内置函数: 下面就一一介绍一下内置函数的用法: 1.abs() 返回一个数值的绝对值,可以是整数或浮点数等. print(abs(-18)) print(abs(0.15)) result: 18 0.15 2.all(iterable) 如果iterable的所有元素不为0.''.False或者iterable为空,all(iterable)返回True,否则返回False. print(all(['a','b',

  • 对layui数据表格动态cols(字段)动态变化详解

    如搜索查询时,常会遇到按日期时间段查询,并显示查询的每个日期的数据,后台拼装数据此处不讨论. 把表格渲染封装在函数里面,cols_arr是传入的字段数组 function tableRender(cols_arr){ table.render({ elem: '#demo' , url: 请求地址 //数据接口 , method: 'post' , page: true //开启分页 , cols: cols_arr , id: 'demo' , limit: 10 , limits: [10,

  • C++ 基础教程之虚函数实例代码详解

    虚函数的定义 虚函数:就是在基类的成员函数前加关键字virtual(即被virtual关键字修饰的成员函数),并在一个或多个派生类中被重新定义的成员函数:虚函数:就是在编译的时候不确定要调用哪个函数,而是动态决定将要调用哪个函数.它的作用就是为了能让这个函数在它的子类里面可以被重载,这样的话,编译器就可以使用后期绑定来达到多态了,也就是用基类的指针来调用子类的这个函数:虚函数的作用:在于用专业术语来解释就是实现多态性,多态性是将接口与实现进行分离,通过指向派生类的基类指针或引用,访问派生类中同名

随机推荐