一、定义

1.模型在学习过程中出现nan

二、实现

  1. 模型在学习过程中出现nan, 如何解决
    数据中出现nan, 导致某一维度出现nan, 则该维度数据是无效的,模型无法进行学习的。
print("Train X stats: ", self.train['x_pre'].mean(axis=0), self.train['x_pre'].std(axis=0))
print("Train y stats: ", self.train['y_after'].mean(axis=0), self.train['y_after'].std(axis=0))
print("Any NaN in X_train:", np.any(np.isnan(self.train['x_pre'])))
print("Any Inf in y_train:", np.any(np.isinf(self.train['y_after'])))

需要对数据进行处理,处理掉nan的字段信息。

   def datasetCheck(self):
        self.df = self.df.dropna()
        total_missing = self.df.isnull().sum().sum()
        print(f"\n总缺失值 (NaN) 数量: {total_missing}")
        print(f"缺失值占比: {(total_missing / self.df.size) * 100:.2f}%")
        
        # 4. 详细列出每一列的缺失情况
        print("\n=== 各列缺失值详细情况 ===")
        missing_info = self.df.isnull().sum()
        # 按缺失数量降序排列,优先看问题最严重的列
        missing_info = missing_info[missing_info > 0].sort_values(ascending=False)
        if len(missing_info) > 0:
            for col_name, missing_count in missing_info.items():
                print(f"列 '{col_name}': {missing_count} 个缺失值 (占比 {missing_count/len(self.df)*100:.1f}%)")
        else:
            print("(!) 警告:pandas 未检测到缺失值,但NumPy计算为NaN,可能存在数据类型问题")
Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐