构建顺序模型时与数据类型和输入形状相关的错误

我在做一个小实验,目的是了解如何构建一个顺序模型。

我有一个形状为(10, 10, 5)的numpy数组,称之为feature_0。我创建了如下的顺序模型:

model = tf.keras.models.Sequential([    layers.Dense(units=16, input_shape=(10, 5)),    layers.Dense(units=8),    layers.Dense(units=1)])model(features_0)model.summary()

这返回了一个模型摘要,如下所示:

Model: "sequential_16"_________________________________________________________________Layer (type)                 Output Shape              Param #   =================================================================dense_48 (Dense)             (None, 10, 16)            96        _________________________________________________________________dense_49 (Dense)             (None, 10, 8)             136       _________________________________________________________________dense_50 (Dense)             (None, 10, 1)             9         =================================================================Total params: 241Trainable params: 241Non-trainable params: 0_________________________________________________________________

这正是我所期望的。我知道不需要将features_0传递给模型就能看到摘要,因为已经指定了输入形状。然而,当我尝试这样做时,出现了错误:

model = tf.keras.models.Sequential([    layers.Dense(units=16),    layers.Dense(units=8),    layers.Dense(units=1)])model(features_0)model.summary()

我只是在第一个隐藏层中移除了输入形状。我期望看到的是它会返回一个模型摘要,并且由于没有给出输入形状,输出形状将显示为multiple。然而,我得到了下面的错误:

InvalidArgumentError: cannot compute MatMul as input #1(zero-based) was expected to be a int64 tensor but is a float tensor [Op:MatMul]

我构建模型的第一种和第二种方式有什么不同?我应该总是指定输入形状吗?这似乎与数据类型有关。正如错误所提示的,模型期望integer输入,但我的feature_0是一个形状为(10, 10, 5)的整数numpy数组。我是这样创建numpy数组的:

features_0 = np.random.randint(100, size=(10, 10, 5))

谢谢帮助。


回答:

我通过将'int64'转换为'float64'解决了这个问题,如下所示:

features_1 = features_0.astype('float32')model = tf.keras.models.Sequential([    layers.Dense(units=16),    layers.Dense(units=8),    layers.Dense(units=1)])model(features_1)model.summary()

它返回了预期的模型摘要。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注