簡體   English   中英

數據基數不明確

[英]Data cardinality is ambiguous

你可以幫幫我嗎? 這是完整的代碼

ValueError:數據基數不明確:x 大小:3 y 大小:20 確保所有數組包含相同數量的樣本。

import tensorflow as tf
from keras.models import Sequential
from keras.layers import Dense
import numpy as np
import matplotlib.pyplot as plt


x_data=np.array([[1,1,1,1,1,5,5,5,5,5,1,1,1,1,1,5,5,5,5,5],
                [3,5,1,3,5,1,3,5,1,3,5,1,3,5,1,3,5,1,3,5],
                [1,2,3,4,5,4,3,2,1,2,3,4,5,4,3,2,1,2,3,4]])
y_data=np.array([11,6,10,6,5,19,14,14,27,15,5,9,5,5,10,15,19,21,14,12])


model=Sequential()
model.add(Dense(11,input_dim=3, activation='sigmoid'))
model.add(Dense(1,activation='sigmoid'))


sgd=tf.keras.optimizers.SGD(lr = 0.01, momentum= 0.45)
model.compile(loss='mse',optimizer=sgd,metrics=['accuracy'])

batch_size=1
epochs=500
                                                                    
result=model.fit(np.array(x_data),np.array(y_data), batch_size, epochs=epochs, shuffle=True, verbose=0)

result.history.keys()
plt.plot(result.history['loss'])

數據基數錯誤是由於x_data.shapey_data.shape不匹配。

您可以通過在使用以下代碼將x_data形狀提供給模型之前對其進行整形來修復此錯誤。

x_data = x_data.reshape(x_data.shape[1],x_data.shape[0])
x_data.shape   # Output: (20, 3)

請檢查此固定代碼:

import tensorflow as tf
from keras.models import Sequential
from keras.layers import Dense
import numpy as np
import matplotlib.pyplot as plt

x_data=np.array([[1,1,1,1,1,5,5,5,5,5,1,1,1,1,1,5,5,5,5,5],
                [3,5,1,3,5,1,3,5,1,3,5,1,3,5,1,3,5,1,3,5],
                [1,2,3,4,5,4,3,2,1,2,3,4,5,4,3,2,1,2,3,4]])
x_data.shape    # (3, 20)

y_data=np.array([11,6,10,6,5,19,14,14,27,15,5,9,5,5,10,15,19,21,14,12])
y_data.shape  # (20,)

x_data = x_data.reshape(x_data.shape[1],x_data.shape[0])
x_data.shape  # (20, 3)

model=Sequential()
model.add(Dense(16, activation='relu'))
model.add(Dense(1,activation='sigmoid'))


sgd=tf.keras.optimizers.SGD(learning_rate = 0.01, momentum= 0.45)
model.compile(loss='mse',optimizer=sgd,metrics=['accuracy'])

batch_size=1
epochs=500
                                                                    
result=model.fit(x_data,y_data, batch_size, epochs=epochs, shuffle=True, verbose=0)

result.history.keys()
plt.plot(result.history['loss'])

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM