首页 > 解决方案 > TypeError:MergeFrom() 的参数必须是同一类的实例:预期的 TensorShapeProto 得到了 TensorShapeProto。在 tf.keras.layers.Embedding

问题描述

我正在尝试使用tensorflow.keras.layers.Embedding 和 Glove 进行文本分类。当我运行代码时:

model.add(Embedding(len(word_index) + 1,
 100,
 weights=[embedding_matrix],
 input_length=MAX_LENGTH,
 trainable=False))

我得到错误:

TypeError: Parameter to MergeFrom() must be instance of same class: expected TensorShapeProto got TensorShapeProto.

我的 TensorFlow 版本:1.14.0 我使用的是 Win-64

标签: pythontensorflowkerasnlp

解决方案


我能够重现这个问题。感谢@sclarkson 的回答,当我执行以下操作时,该错误消失了:

lib/python3.7/site-packages/tensorflow/python/__init__.py一、在我的环境目录下查找文件

二、从以下位置重新排序行:

from tensorflow.python.eager import context
from tensorflow.python import pywrap_tensorflow as _pywrap_tensorflow

from tensorflow.python import pywrap_tensorflow as _pywrap_tensorflow
from tensorflow.python.eager import context

我有以下python环境:

  1. Macbook 蒙特雷 12.0.1
  2. 康达 4.10.3
  3. 蟒蛇=3.7.9
  4. 张量流=2.6.0
  5. keras=2.6.0

推荐阅读