tensorflow2.3.1报错:Inputs to eager excution function cannot be keras symbolic tensors

结论

  • 法一:新建python3.6环境,安装tensorlfow2.0.0-alpha0→py文件 禁用eager excution function【tensorflow.compat.v1.disable_v2_behavior()】
  • 法二:tensorflow2.3.1不变,py文件 禁用eager excution function【tensorflow.compat.v1.disable_v2_behavior()】
    两种方法完美解决问题,推荐法2省力省心,原理不懂。

用到的linux上安装conda、faiss、conda创建环境的方法

linux安装conda

  1. wget -c https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh
  2. bash Miniconda3-latest-Linux-x86_64.sh #运行过程 回车,yes,yes
  3. cd …切到上级目录
  4. source .bashrc
  5. 测试conda env list成功就ok了
  6. 不成功就“rm -rf miniconda3/”,然后重复2~5安装。

linux conda安装faiss

  1. conda install mkl
  2. conda install faiss-cpu -c pytorch
  3. 成功

conda创建python3.6环境

  1. conda create -n XXX python=3.6 #命名为XXX的python3.6环境
  2. conda activate XXX #激活命名为XXX的python3.6环境
  3. deactivate #退出该环境

记录过程

最近学习推荐系统,用到faiss,需要linux系统,然后就用deepnote了。默认的python环境是3.7.9,然后装conda很顺利,faiss很顺利,tensorflow也很顺利(pip install tensorflow),结果tensorflow版本是2.3.1,运行代码出错【Inputs to eager excution function cannot be keras symbolic tensors】,求助组织之后,助教推荐降级tensorflow到1.14.0或者2.0.0.

在这里插入图片描述

然后开始安装tensorflow 2.0.0-alpha0,结果报错:
在这里插入图片描述
查原因是python版本太高,然后开始创建3.6的python环境,安装tensorflow 2.0.0-alpha0,这次完美安装了。一切看上去很顺利,运行py文件时候又出现了报错【Tensor.graph is meaningless when eager execution is enabled.】

在这里插入图片描述
通过下述代码解决了:

import tensorflow.compat.v1 as tf
tf.disable_v2_behavior()

然后跑起来很顺利。

然后群里的大神@我,上面的那行代码可以直接解决tensorflow2.3.1运行py文件时候的报错,试了试真有效,不用建py3.6环境不用安装低版本tensorflow就行,实在是太棒了。

参考

conda的安装与使用(2020-08-10更新)
faiss安装
Tensor.graph is meaningless when eager execution is enabled.解决办法TensorFlow2.0 使用1.x的代码时报错,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值