import os
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
from tensorflow.keras.layers import Conv1D, MaxPooling1D, Flatten, Dense, Dropout, Input, GlobalMaxPooling1D
from tensorflow.keras.optimizers import Adam
from tensorflow.keras.callbacks import EarlyStopping, ReduceLROnPlateau
from tensorflow.keras.layers import MultiHeadAttention, LayerNormalization
from tensorflow.keras.models import Model
import tkinter as tk
from tkinter import messagebox, filedialog
from PIL import Image, ImageTk
from datetime import datetime
# 数据预处理函数
def prepare_data(input_folder, output_file, columns_to_read=None):
if not os.path.exists(input_folder):
print(f"指定的文件夹不存在: {input_folder}")
return
files = [file for file in os.listdir(input_folder) if file.endswith('.txt')]
if not files:
print(f"在文件夹 {input_folder} 中没有找到任何.txt文件。")
return
combined_df = pd.DataFrame()
for file in files:
file_path = os.path.join(input_folder, file)
try:
with open(file_path, 'r', encoding='utf-8') as f:
lines_to_keep = []
for line in f:
if '送料操作' in line:
continue
else:
lines_to_keep.append(line)
temp_file_path = 'temp.txt'
with open(temp_file_path, 'w', encoding='utf-8') as temp_file:
temp_file.writelines(lines_to_keep)
tbl = pd.read_csv(temp_file_path, header=0, usecols=columns_to_read, sep=r'\s+')
tbl = tbl[pd.to_numeric(tbl.iloc[:, 0], errors='coerce').notnull()]
if not tbl.empty:
combined_df = pd.concat([combined_df, tbl], ignore_index=True)
except Exception as e:
print(f"处理文件 {file_path} 时发生错误: {e}")
continue
if combined_df.empty:
print("提取的数据为空,无法写入文件。")
return
combined_df.to_csv(output_file, index=False)
print(f"数据已写入 {output_file}")
return output_file
# 模型构建函数
def build_model(input_shape):
inputs = Input(shape=input_shape)
cnn_output = Conv1D(64, 3, padding='same', activation='rel
Transformer-based CNNs神经网络预测模型
于 2024-05-22 13:14:34 首次发布