Python ValueError:没有足够的值来解包(预期为2,得到1)?

Python ValueError:没有足够的值来解包(预期为2,得到1)?,python,cnn,Python,Cnn,我们将在下面的代码中介绍此函数 def cnn_data(data): x, y = data.shape[1:] return data.reshape((-1, x, y, 1)) 该代码产生以下错误。它试图训练卷积神经网络 model.fit(cnn_data(self.train_X), np.array(self.train_y), batch_size=batch_size, e

我们将在下面的代码中介绍此函数

def cnn_data(data):
    x, y = data.shape[1:]
    return data.reshape((-1, x, y, 1))
该代码产生以下错误。它试图训练卷积神经网络

model.fit(cnn_data(self.train_X), np.array(self.train_y),
                      batch_size=batch_size,
                      epochs=num_epochs,
                      verbose=1,
                      class_weight=class_weight,
                      validation_data=(cnn_data(self.val_X), np.array(self.val_y)),
                      shuffle=True,
                      use_multiprocessing=True,
                      callbacks=[tensorboard, early_stopping])
回溯(最近一次呼叫最后一次):
文件“C:\Program Files\Python37\lib\runpy.py”,第193行,位于作为主模块的运行模块中
“\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
文件“C:\Program Files\Python37\lib\runpy.py”,第85行,在运行代码中
exec(代码、运行\全局)
文件“醉酒检测器\\uuuu main\uuuuu.py”,第808行,在
dd.列车()
列车283行的文件“醉酒检测器\\uuuu main\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
cnn=self.train\u cnn\u hyperparameters()
列车cnn超参数中第653行文件“醉酒检测器\\uuu main\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
模型拟合(cnn_数据(self.train_X),np.array(self.train_y),
cnn\U数据中第776行的文件“醉酒检测器\\uuuuu main\uuuuu.py”
x、 y=数据。形状[1:]
ValueError:没有足够的值来解包(预期值为2,实际值为1)

在这行代码中
x
y
是两个值,而
数据。shape
只产生一个值:

Traceback (most recent call last):
  File "C:\Program Files\Python37\lib\runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "C:\Program Files\Python37\lib\runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "drunk_detector\__main__.py", line 808, in <module>
    dd.train()
  File "drunk_detector\__main__.py", line 283, in train
    cnn = self.train_cnn_hyperparameters()
  File "drunk_detector\__main__.py", line 653, in train_cnn_hyperparameters
    model.fit(cnn_data(self.train_X), np.array(self.train_y),
  File "drunk_detector\__main__.py", line 776, in cnn_data
    x, y = data.shape[1:]
ValueError: not enough values to unpack (expected 2, got 1)

您的数据似乎有两个维度,因此data.shape[1:]仅为一个整数。因此,错误消息

看起来您的数据只有两个维度,您正在尝试解包第二个和第三个维度
x, y = data.shape[1:]