python - Keras 预测形状不正确?

标签 python numpy tensorflow keras shapes

我是 Keras 的新手,正在尝试测试我刚刚训练的模型。

我正在使用 Tensorflow 后端和 Python 3。

但是,我输入的形状和 Keras 在错误中说的形状完全不同。这是我的代码:

testnote = np.zeros((3,))
testnote[0] = 70
testnote[1] = 70
print(testnote.shape)
pred = model.predict(testnote)
print(pred)

对于 testnote 的形状,我的一致输出是“(3,)”,然后是我的预测行的错误:“ValueError:检查输入时出错:预期 dense_1_input 的形状为 (3,) 但得到的数组形状为 ( 1,)”

当我刚刚确认形状为 (3,) 时,Keras 如何将测试笔记读取为形状 (1,)?它是否对“形状”的含义使用了某种不同的标准?我试过 reshape 和添加括号以及其他一些东西,但我真的不知道问题出在哪里。

对于其他上下文,该模型接受一个包含 3 个标量输入(代表音高、速度和乐器类别)的数组,并输出一个包含 1025 个标量输出的数组。我小心翼翼地没有使用“维度”这个词,因为我认为这是我感到困惑的地方,而且从技术上讲,两者都只有一维。我确信我的模型有很多问题,我必须在接下来的时间里解决这些问题。但是,我只想让这个预测函数起作用,这样我就可以理解我的输出是什么样子的。

在此先感谢您的帮助。

最佳答案

Keras 模型 隐含地期望您的数据(作为 np 数组 传递)具有批量大小的维度。目前,您的模型正在将 testnote 解释为形状 1 的 3 个示例。尝试将批量维度添加到“testnote”,如下所示:

testnote = testnote.reshape(1,-1)

这会将 testnote reshape 为 (1, 3),这样您就可以明确地将批量大小定义为 1。

关于python - Keras 预测形状不正确?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51751131/

相关文章:

python - 从 Python 字典中获取任意元素的最快方法是什么?

python - 尝试使用 pandas 进行 pytest 测试时出现 Keyerror

python - 如何最好地在 tensorflow 中实现矩阵掩码操作?

tensorflow - 关于使用 tf.train.shuffle_batch() 创建批处理

python - 在 python 中切片 2D numpy 数组

python - 从 C++ 自动生成 python 模块的 Tensorflow 源代码

Python:列表、容器和排序

Python Dash 绘图 : Show default closest data on hover or compare data on hover in graph

python - 由于 NumPy 中的奇异性,如何尝试排除非法矩阵运算

python - Python 中的 Parseval 定理