tflearn DNN 模型给出 TargetsData/Y:0 错误
tflearn DNN model gives TargetsData/Y:0 error
我收到以下错误...
ValueError: Cannot feed value of shape (16,) for Tensor 'TargetsData/Y:0', which has shape '(?, 16)'
我知道这与我的 Y
变量的形状有关,在本例中是变量 labels
,但我不确定如何更改形状以使我的模型工作。
基本上,我有一个 CSV
文件,我使用 pandas
...
将其保存到一个变量中
data = pd.read_csv('Speed Dating Data.csv')
经过一些预处理后,我决定提取我的目标 class 这样...
# Target label used for training
labels = np.array(data["age"], dtype=np.float32)
接下来我从 data
变量中删除了这一列...
# Data for training minus the target label.
data = np.array(data.drop("age", axis=1), dtype=np.float32)
然后我决定设置我的模型...
net = tflearn.input_data(shape=[None, 32])
net = tflearn.fully_connected(net, 32)
net = tflearn.fully_connected(net, 32)
net = tflearn.fully_connected(net, 16, activation='softmax')
net = tflearn.regression(net)
# Define model.
model = tflearn.DNN(net)
model.fit(data, labels, n_epoch=10, batch_size=16, show_metric=True)
如果我运行这个,我得到上面的错误。由于我的 labels
似乎是 (16,)
但我需要它是 (?, 16)
,我尝试了以下代码...
labels = labels[np.newaxis, :]
但这又给出了另一个错误。我想我不确定我的目标 class、labels
应该是什么形式。我该如何解决这个问题?
根据以下内容重塑您的标签,
label= np.reshape(label,(-1,16)) # since you have 16 classes
将 label 重塑为 (?,16).
希望对您有所帮助。
已根据您的要求进行了更新。并对更改添加了评论。
labels = np.array(data["age"], dtype=np.float32)
label= np.reshape(label,(-1,1)) #reshape to [6605,1]
data = np.array(data.drop("age", axis=1), dtype=np.float32)
net = tflearn.input_data(shape=[None, 32])
net = tflearn.fully_connected(net, 32)
net = tflearn.fully_connected(net, 32)
net = tflearn.fully_connected(net, 1, activation='softmax') #Since this is a regression problem only one output
net = tflearn.regression(net)
# Define model.
model = tflearn.DNN(net)
model.fit(data, labels, n_epoch=10, batch_size=16, show_metric=True)
我收到以下错误...
ValueError: Cannot feed value of shape (16,) for Tensor 'TargetsData/Y:0', which has shape '(?, 16)'
我知道这与我的 Y
变量的形状有关,在本例中是变量 labels
,但我不确定如何更改形状以使我的模型工作。
基本上,我有一个 CSV
文件,我使用 pandas
...
data = pd.read_csv('Speed Dating Data.csv')
经过一些预处理后,我决定提取我的目标 class 这样...
# Target label used for training
labels = np.array(data["age"], dtype=np.float32)
接下来我从 data
变量中删除了这一列...
# Data for training minus the target label.
data = np.array(data.drop("age", axis=1), dtype=np.float32)
然后我决定设置我的模型...
net = tflearn.input_data(shape=[None, 32])
net = tflearn.fully_connected(net, 32)
net = tflearn.fully_connected(net, 32)
net = tflearn.fully_connected(net, 16, activation='softmax')
net = tflearn.regression(net)
# Define model.
model = tflearn.DNN(net)
model.fit(data, labels, n_epoch=10, batch_size=16, show_metric=True)
如果我运行这个,我得到上面的错误。由于我的 labels
似乎是 (16,)
但我需要它是 (?, 16)
,我尝试了以下代码...
labels = labels[np.newaxis, :]
但这又给出了另一个错误。我想我不确定我的目标 class、labels
应该是什么形式。我该如何解决这个问题?
根据以下内容重塑您的标签,
label= np.reshape(label,(-1,16)) # since you have 16 classes
将 label 重塑为 (?,16).
希望对您有所帮助。
已根据您的要求进行了更新。并对更改添加了评论。
labels = np.array(data["age"], dtype=np.float32)
label= np.reshape(label,(-1,1)) #reshape to [6605,1]
data = np.array(data.drop("age", axis=1), dtype=np.float32)
net = tflearn.input_data(shape=[None, 32])
net = tflearn.fully_connected(net, 32)
net = tflearn.fully_connected(net, 32)
net = tflearn.fully_connected(net, 1, activation='softmax') #Since this is a regression problem only one output
net = tflearn.regression(net)
# Define model.
model = tflearn.DNN(net)
model.fit(data, labels, n_epoch=10, batch_size=16, show_metric=True)