# 模型的加载及使用print使用模型进行预测filepath=M1h5model = load_modelfilepath# 读取 CSV 文件data = pdread_csv验证m模型csv# 提取第1列的数据h0 = datailoc 1values# 提取第2列的数据taus = datailoc 2values# 提取第3列的数据tau0 = datailoc 3values# 提取第
根据报错信息,发现是数据类型不匹配导致的错误。具体是因为读取的CSV文件中包含了字符串类型的数据,导致无法进行除法运算。可以通过修改代码,将字符串类型的数据转换为浮点型数据。
修改后的代码如下:
# 读取 CSV 文件
data = pd.read_csv('验证m模型.csv')
# 提取第1列的数据并转换为浮点型
h0 = data.iloc[:, 1].values.astype(np.float32)
# 提取第2列的数据并转换为浮点型
taus = data.iloc[:, 2].values.astype(np.float32)
# 提取第3列的数据并转换为浮点型
tau0 = data.iloc[:, 3].values.astype(np.float32)
# 提取第4到11列的数据并转换为浮点型
features = data.iloc[:, 4:11].values.astype(np.float32)
# 提取第12列的数据并转换为浮点型
target = data.iloc[:, 12].values.astype(np.float32)
# 对第1列的数据除以最大值,后面除以的值是用于训练模型时候归一化除以的值
h0_normalized = h0 / 500
# 对第2列的数据除以最大值,后面除以的值是用于训练模型时候归一化除以的值
taus_normalized = taus / 1000
# 对第3列的数据除以最大值,后面除以的值是用于训练模型时候归一化除以的值
tau0_normalized = tau0 / 1000
# 对第4到11列的每行数据除以每行数据中的最大值,后面除以的值是用于训练模型时候归一化除以的值
features_normalized = features / 2871.158436
# 对第12列的数据除以最大值,后面除以的值是用于训练模型时候归一化除以的值
target_normalized = target / 0.469994596
# 将数据转换为 NumPy 数组
unknown = np.concatenate((h0_normalized, taus_normalized, tau0_normalized, features_normalized, target_normalized.reshape(-1, 1)), axis=1)
# 进行预测
predicted = model.predict(unknown, verbose=1)
# 将预测结果保存到新的 CSV 文件中
# 将预测结果转换为 DataFrame
result = pd.DataFrame(predicted, columns=[f'prediction_{i}' for i in range(predicted.shape[1])])
# 将预测结果反归一化
result.iloc[:, 0] = result.iloc[:, 0] * 70
# 将 DataFrame 以行为单位保存到 CSV 文件中
result.to_csv('m预测结果.csv', index=False, header=False)
修改后的代码中,通过astype(np.float32)将字符串类型的数据转换为浮点型数据,从而解决了除法运算类型不匹配的问题
原文地址: https://www.cveoy.top/t/topic/iTuD 著作权归作者所有。请勿转载和采集!