代码之家  ›  专栏  ›  技术社区  ›  leone

ValueError:输入数据应为非空

  •  0
  • leone  · 技术社区  · 1 年前

    这是我的代码:

    x_test = []
    y_test = dataset[training_data_len:, :]
    for i in range (60,len(test_data)):
        x_test.append(test_data[i - 60 :i, 0])
    
    
    x_test = np.array(x_test)
    
    x_test = np.reshape(x_test , (x_test.shape[0] ,x_test.shape[1],1))
    

    当我写下这句话时:

    predictions = model.predict(x_test)
    predictions = scaler.inverse_transform(predictions)
    

    我收到此错误:

    ---------------------------------------------------------------------------
    ValueError                                Traceback (most recent call last)
    Cell In[26], line 1
    ----> 1 predictions = model.predict(x_test)
          2 predictions = scaler.inverse_transform(predictions)
    
    File c:\Users\hemic\AppData\Local\Programs\Python\Python311\Lib\site-packages\keras\src\utils\traceback_utils.py:70, in filter_traceback.<locals>.error_handler(*args, **kwargs)
         67     filtered_tb = _process_traceback_frames(e.__traceback__)
         68     # To get the full stack trace, call:
         69     # `tf.debugging.disable_traceback_filtering()`
    ---> 70     raise e.with_traceback(filtered_tb) from None
         71 finally:
         72     del filtered_tb
    
    File c:\Users\hemic\AppData\Local\Programs\Python\Python311\Lib\site-packages\keras\src\engine\data_adapter.py:1319, in DataHandler.__init__(self, x, y, sample_weight, batch_size, steps_per_epoch, initial_epoch, epochs, shuffle, class_weight, max_queue_size, workers, use_multiprocessing, model, steps_per_execution, distribute, pss_evaluation_shards)
       1314 self._configure_dataset_and_inferred_steps(
       1315     strategy, x, steps_per_epoch, class_weight, distribute
       1316 )
       1318 if self._inferred_steps == 0:
    -> 1319     raise ValueError("Expected input data to be non-empty.")
    

    ValueError:输入数据应为非空。

    我该如何解决这个错误?

    3 回复  |  直到 1 年前
        1
  •  1
  •   user23488994    1 年前

    在哪里 test_data 定义

    它的长度超过60吗?

    如果不是,则代码不会进入循环,并且 x_test 仍然是空的。

        2
  •  0
  •   Tazorraxx    1 年前

    这个错误表明你 x_test 当您尝试使用模型进行预测时,为空。

    • 循环之前,请检查 test_data 已定义(打印出要检查的前几行)
    • 确保您的 测试数据 包括之间的元素 60 和`len(test_data)
    • 打印输出 x_test 在循环之后,确保它不是空的

    以上内容应该有助于找出错误的根源。

        3
  •  0
  •   RadinFard    1 年前

    如果你看看这里:

    ValueError                                Traceback (most recent call last)
    Cell In[26], line 1
    ----> 1 predictions = model.predict(x_test)
          2 predictions = scaler.inverse_transform(predictions)
    

    您可以看到x_test是空的,并且没有向其自身附加任何内容。

    1.回路范围: 首先,检查test_data是否大于1

    2.空测试数据: 请确保test_data不为空。