前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >tensorflow: 为什么 tensor型参数 可以接受 非tensor型输入

tensorflow: 为什么 tensor型参数 可以接受 非tensor型输入

作者头像
JNingWei
发布2018-09-28 15:24:01
5360
发布2018-09-28 15:24:01
举报
文章被收录于专栏:JNing的专栏

问题

在日常用 tensorflow 进行编程的时候,我经常会纳罕一个问题:

明明 manual里面 白纸黑字地注明了 某个参数项 的 输入 必须是 tensor型,可是 非tensor型 的数据 输入后 却不会报错,依然能正常算出结果。


示例

比如,合法的输入应该如下:

代码语言:javascript
复制
import tensorflow as tf

a = tf.constant(10)
b = tf.constant(20)
c = tf.multiply(a, b)
sess = tf.InteractiveSession()
print c.eval()

打印结果:

代码语言:javascript
复制
200

但是如果你这么玩:

代码语言:javascript
复制
import tensorflow as tf

a = 10
b = 20
c = tf.multiply(a, b)
sess = tf.InteractiveSession()
print c.eval()

照样打印出一样的结果来:

代码语言:javascript
复制
200

但是 manual 里面已经写明了 tf.multiply函数参数项输入 必须要是 tensor型 的:

这里写图片描述
这里写图片描述

具体见 Args 一栏:

这里写图片描述
这里写图片描述

原因

仔细查看 tensorflow 官网 的 api manual,页首经常会有这个 提示

这里写图片描述
这里写图片描述

通过查看源码,我发现凡是注明了

Note: Functions taking Tensor arguments can also take anything accepted by tf.convert_to_tensor.

这句话的,此类接口在源码中,都有对 input 先进行 tf.convert_to_tensor预处理 。所以当 非tensor型 数据 输入时,当然就 不会报错 啦~



本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017年10月05日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 问题
  • 示例
  • 原因
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档