Python 基于不同数据维的评价模型

Python 基于不同数据维的评价模型,python,tensorflow,keras,Python,Tensorflow,Keras,我有形状(37520,32,9)的数据,有五类形状(37520,5),我正在使用Conv1D训练模型,到目前为止我能够训练数据。但问题是,我需要在不同的维度上对其求值-(37520,32,4)(类是相同的),我得到以下错误: Traceback (most recent call last): File "data_maker_cnn_multiuser_folds_correct.py", line 870, in <module> f = run_cnn(a) F

我有形状
(37520,32,9)
的数据,有五类形状
(37520,5)
,我正在使用Conv1D训练模型,到目前为止我能够训练数据。但问题是,我需要在不同的维度上对其求值-
(37520,32,4)
(类是相同的),我得到以下错误:

Traceback (most recent call last):
  File "data_maker_cnn_multiuser_folds_correct.py", line 870, in <module>
    f = run_cnn(a)
  File "data_maker_cnn_multiuser_folds_correct.py", line 155, in run_cnn
    _, accuracy = model.evaluate(x_test, y_test, batch_size=batch_size, verbose=verbose)
  File "/Users/akshayrajgollahalli/miniconda3/lib/python3.7/site-packages/tensorflow_core/python/keras/engine/training.py", line 930, in evaluate
    use_multiprocessing=use_multiprocessing)
  File "/Users/akshayrajgollahalli/miniconda3/lib/python3.7/site-packages/tensorflow_core/python/keras/engine/training_v2.py", line 490, in evaluate
    use_multiprocessing=use_multiprocessing, **kwargs)
  File "/Users/akshayrajgollahalli/miniconda3/lib/python3.7/site-packages/tensorflow_core/python/keras/engine/training_v2.py", line 426, in _model_iteration
    use_multiprocessing=use_multiprocessing)
  File "/Users/akshayrajgollahalli/miniconda3/lib/python3.7/site-packages/tensorflow_core/python/keras/engine/training_v2.py", line 646, in _process_inputs
    x, y, sample_weight=sample_weights)
  File "/Users/akshayrajgollahalli/miniconda3/lib/python3.7/site-packages/tensorflow_core/python/keras/engine/training.py", line 2383, in _standardize_user_data
    batch_size=batch_size)
  File "/Users/akshayrajgollahalli/miniconda3/lib/python3.7/site-packages/tensorflow_core/python/keras/engine/training.py", line 2410, in _standardize_tensors
    exception_prefix='input')
  File "/Users/akshayrajgollahalli/miniconda3/lib/python3.7/site-packages/tensorflow_core/python/keras/engine/training_utils.py", line 582, in standardize_input_data
    str(data_shape))
ValueError: Error when checking input: expected conv1d_input to have shape (32, 9) but got array with shape (32, 4)

甚至有可能做到这一点吗?我也尝试过使用预测,但仍然有一个错误。

模型需要有以下参数才能固定,以便对其进行训练、评估和预测

  • 模型中所有图层的名称和类型
  • 输出每个层的形状
  • 每层的权重参数数
  • 每层接收的输入
  • 模型的可训练和不可训练参数的总数
因此,对于已在另一个输入形状上训练过的模型,您将无法评估或预测不同输入形状

你可以像上面提到的@HitLuca那样进行人工修复,但是效果可能不好

另一个选项是将模型的原始输入大小
(32,9)
截断为
(32,4)
,然后重新训练。然而,信息将会丢失。培训后,您的评估和预测将使用
(32,4)
数据。但同样,如果您试图使用原始输入大小进行评估或预测,则它将不起作用


希望这能回答你的问题。愉快的学习。

我认为这是不可能的。你可以用零来填充它,但你可能不会有好的表现。我尝试过,但效果很差。请提供完整的可复制代码。@Akshay-希望我们已经回答了您的问题。如果你对答案感到满意,请接受并投票。