python - 数据基数是 Keras 中的模棱两可的错误
问题描述
我拼凑了一些随机生成房屋属性的代码片段。如果房屋符合特定标准,则房屋被标记为 90% 的时间。然后我试图将它输入到一个基本的 DNN 中,但这就是一切崩溃的地方。DNN 代码对我来说主要是黑匣子,我在这里尝试了很多东西,但我无法让它获取我的数据。
我认为数组的形状导致了这个问题。
# Imports for DNN
from keras.models import Sequential
from keras.layers import Dense
# Imports for generating data
import random
class HouseDetails:
def __init__(self, color, sqrft, rooms, liked):
self.color = color
self.sqrft = sqrft
self.rooms = rooms
self.liked = liked
Houses = []
X = []
y = []
for numbers in range(10000):
color = random.randint(0,5)
sqrft = random.randint(500, 5000)
rooms = random.randint(0, 5)
if ((color == 2 or color == 4) and (rooms >2 and sqrft > 2000)):
liked = random.randint(0,9)
if(liked):
liked = 1
else:
liked = 0
Houses.append(HouseDetails(color,sqrft,rooms,liked))
# Split into input (X) and output (y) variables
for House in Houses:
if(House.liked):
X.append(House.color)
X.append(House.sqrft)
X.append(House.rooms)
y.append(House.liked)
# Define the keras model
model = Sequential()
model.add(Dense(6, input_dim=3, activation='relu'))
model.add(Dense(6, activation='relu'))
model.add(Dense(1, activation='sigmoid'))
# Compile the keras model
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
# Fit the keras model on the dataset
model.fit(X, y, epochs=150, batch_size=10, verbose=0)
# Make class predictions with the model
predictions = model.predict_classes(X)
# Show the first 5
for i in range(5):
print('%s was %d (we expected %d)' % (X[i].tolist(), predictions[i], y[i]))
我收到的错误:
ValueError: Data cardinality is ambiguous:
x sizes: 2982
y sizes: 994
Please provide data which shares the same first dimension.
我确定答案就在错误中,但是我对其中的很多内容都很陌生,我就是想不通。
解决方案
代码是垃圾,但问题在于“for House”循环。它应该是:
# Split into input (X) and output (y) variables
for House in Houses:
if (House.liked):
X.append([(House.color), (House.sqrft), (House.rooms)])
y.append(House.liked)
推荐阅读
- pandoc - 使用 pandoc 将 html 转换为 docx
- java - JdbcRowSet 返回 SQL 异常
- mysql - 连接 4 个表导致空结果
- javascript - 如何限制 Typescript 索引签名的键
- angular - 如何修复“node_modules/@types/prismjs/index.d.ts 错误中的错误找不到所需名称”角度错误
- php - 两个域的 php session_set_cookie_params()
- reactjs - React Native 中的 Java 单例等价物是什么?
- kubernetes - Kubernetes命名空间中部署定义的唯一性
- java - 如何修复不可变类中的“无法使用带参数的构造函数 NO_CONSTRUCTOR 实例化 'className'”
- python-3.x - 将字典附加到元组列表中