Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 数据基数是Keras中的模糊错误_Python_Keras_Neural Network - Fatal编程技术网

Python 数据基数是Keras中的模糊错误

Python 数据基数是Keras中的模糊错误,python,keras,neural-network,Python,Keras,Neural Network,我拼凑了一小段随机生成房屋属性的代码。如果这些房子符合一定的标准,那么在90%的时间里它们都会被标记为like。然后我尝试将其输入到一个基本的DNN中,但这就是它崩溃的地方。DNN代码对我来说基本上是一个黑匣子,我在这里尝试了很多方法,但我无法让它获取我的数据 我认为阵列的形状是问题的根源 # Imports for DNN from keras.models import Sequential from keras.layers import Dense # Imports for gene

我拼凑了一小段随机生成房屋属性的代码。如果这些房子符合一定的标准,那么在90%的时间里它们都会被标记为like。然后我尝试将其输入到一个基本的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)