微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Tensorflow:切换数据集时突然出现“不兼容的形状”

如何解决Tensorflow:切换数据集时突然出现“不兼容的形状”

我从来没有真正在网上发布过任何东西,但目前,我完全没有想法。

问题是,我正在尝试运行 FISM(分类器或推荐系统算法)——具体来说,这个实现:https://github.com/yushuai/FISM。当我将其应用于提供的数据集(数据集 1:ml_train & ml_test)时,它可以工作。当我将其应用于数据集 2(具有相应数量用户和项目)时,我自己处理了该数据集,以便格式等于数据集 1,它也按预期工作。但是,当我将它应用到数据集 3 时,该数据集也具有相同的格式(以及用户和项目的数量),我在 tf.multiply: 不兼容的形状:[99,1] 和 [100,64] 中收到错误。>

令我感到奇怪的是,代码适用于数据集 1 和 2,但不适用于数据集 3。我检查了整个数据集,没有任何异常。我也在互联网上搜索了答案,但我找不到任何答案。所以,这是我的求助请求。这部分对我的研究取得成功至关重要……

我已经尝试减小数据集 3 的大小,但无济于事。我也从 tf1.2 切换到 1.15,从 python3.5 切换到 3.6,但我遇到了同样的错误

谁能帮帮我?非常感谢!

Traceback (most recent call last):
File “C:\Users\semye\anaconda3\envs\py3.5\lib\site-packages\tensorflow_core\python\client\session.py”,line 1365,in _do_call
return fn(*args)
File “C:\Users\semye\anaconda3\envs\py3.5\lib\site-packages\tensorflow_core\python\client\session.py”,line 1350,in _run_fn
target_list,run_Metadata)
File “C:\Users\semye\anaconda3\envs\py3.5\lib\site-packages\tensorflow_core\python\client\session.py”,line 1443,in _call_tf_sessionrun
run_Metadata)
tensorflow.python.framework.errors_impl.InvalidArgumentError: Incompatible shapes: [99,1] vs. [100,64]
[[{{node Mul}}]]

During handling of the above exception,another exception occurred:

Traceback (most recent call last):
File “model.py”,line 194,in
model.train()
File “model.py”,line 103,in train
hit_ratio,ndcg = self.evaluate(sess)
File “model.py”,line 163,in evaluate
self.neighbour_num: [neighbour_number for _ in x_test]
File “C:\Users\semye\anaconda3\envs\py3.5\lib\site-packages\tensorflow_core\python\client\session.py”,line 956,in run
run_Metadata_ptr)
File “C:\Users\semye\anaconda3\envs\py3.5\lib\site-packages\tensorflow_core\python\client\session.py”,line 1180,in _run
Feed_dict_tensor,options,line 1359,in _do_run
run_Metadata)
File “C:\Users\semye\anaconda3\envs\py3.5\lib\site-packages\tensorflow_core\python\client\session.py”,line 1384,in _do_call
raise type(e)(node_def,op,message)
tensorflow.python.framework.errors_impl.InvalidArgumentError: Incompatible shapes: [99,64]
[[node Mul (defined at C:\Users\semye\anaconda3\envs\py3.5\lib\site-packages\tensorflow_core\python\framework\ops.py:1748) ]]

Original stack trace for ‘Mul’:
File “model.py”,line 193,in
model.build_graph()
File “model.py”,line 130,in build_graph
user_repr = tf.multiply(inverse_rated_num,sumvec)
File “C:\Users\semye\anaconda3\envs\py3.5\lib\site-packages\tensorflow_core\python\util\dispatch.py”,line 180,in wrapper
return target(*args,**kwargs)
File “C:\Users\semye\anaconda3\envs\py3.5\lib\site-packages\tensorflow_core\python\ops\math_ops.py”,line 331,in multiply
return gen_math_ops.mul(x,y,name)
File “C:\Users\semye\anaconda3\envs\py3.5\lib\site-packages\tensorflow_core\python\ops\gen_math_ops.py”,line 6701,in mul
“Mul”,x=x,y=y,name=name)
File “C:\Users\semye\anaconda3\envs\py3.5\lib\site-packages\tensorflow_core\python\framework\op_def_library.py”,line 794,in _apply_op_helper
op_def=op_def)
File “C:\Users\semye\anaconda3\envs\py3.5\lib\site-packages\tensorflow_core\python\util\deprecation.py”,line 507,in new_func
return func(*args,**kwargs)
File “C:\Users\semye\anaconda3\envs\py3.5\lib\site-packages\tensorflow_core\python\framework\ops.py”,line 3357,in create_op
attrs,op_def,compute_device)
File “C:\Users\semye\anaconda3\envs\py3.5\lib\site-packages\tensorflow_core\python\framework\ops.py”,line 3426,in _create_op_internal
op_def=op_def)
File “C:\Users\semye\anaconda3\envs\py3.5\lib\site-packages\tensorflow_core\python\framework\ops.py”,line 1748,in init
self._traceback = tf_stack.extract_stack()

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?