No OpKernel was registered to support Op 'Resampler' with these attrs

在TensorFlow环境下编程,当调用一个函数tf.contrib.resampler.resampler时,在进行model.compile时,正常,没出现什么错误。但是在进行model.fit时出现如下错误:

{InvalidArgumentError}No OpKernel was registered to support Op 'Resampler' with these attrs.  Registered devices: [CPU,GPU], Registered kernels

仔细看一下这个错误的描述,是说tf.contrib.resampler.resampler这个函数不论是在CPU还是GPU设备上均没有被注册。已知,在TensorFlow下,每一个Op也称为Kernel。也就是说,tf.contrib.resampler.resampler这个函数无法被调用,因为没被注册。这里的注册也就是说没被安装。而在进行model.compile时没出错,是因为这是还没调用这个操作,在model.fit时才真正去调用这个操作(Op或Kernel或函数)。

本人是在win7-64bit通过pip install tensorflow-gpu==1.4.0的方式安装的tensorflow,在import tf.contrib.resampler时正常导入,没有出错,这里似乎已经对tf.contrib正确安装了。其实不然,模块是导入了,但是真正要执行的操作是需要调用.so文件的,只有在Lib\site-packages\tensorflow\contrib\resampler\python\ops路径下出现.so文件,才对这个操作进行了注册。

一般情况下,不论是在ubuntu系统还是在Windows系统下,通过pip install tensorflow方式安装的tensorflow对tf.contrib模块均未编译注册。因为tf.contrib不稳定,还尚未成为tensorflow的标准,但是在发展的过程中,tf.contrib种的操作可能会被tensorflow标准吸纳或移除,但是tf.contrib的发展远比tensorflow标准库发展的要迅速。所以,说不定在某个时候,你需要调用tf.contrib模块中的操作,此时建议通过源码安装tensorflow。具体教程参考官网。在Windows下,需要安装git,同时建议先安装MSYS2然后在安装Bazel。如果出现安装错误,注意对照安装过程的选项Y/N的选择。

如果您觉得我的文章对您有所帮助,欢迎扫码进行赞赏!

 

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值