在from tensorflow import keras
from tensorflow.python.keras.layers import Dense, Dropout, Activation, Flatten, Conv1D, MaxPool1D
import matplotlib.pyplot as plt
import numpy as np
import os
import pandas as pd
from sklearn.metrics import mean_squared_error, r2_score
# os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'
 
# # 数据集路径
# dataset_path = 'dataset.npy'
# # 接入softmax的全连接层维数
dense_num = 1
# # 保存的模型文件路径
# model_file = 'model/cnn_6traffic_model.h5'
 
# # [training_images, training_labels,
# # validation_images, validation_labels,
# # testing_images, testing_labels]
# data = np.load(dataset_path, allow_pickle=True)
 
X = pd.read_excel("D:\\Phd.xlsx")

x_train=X.iloc[0:95,0:10]
y_train=X.iloc[0:95,10]
x_test=X.iloc[95:126,0:10]
y_test=X.iloc[95:126,10]

x_train = x_train.astype('float32')
x_test = x_test.astype('float32')
y_train= y_train.astype('float32')
y_test= y_test.astype('float32')

# x_train, y_train, x_test, y_test = np.array(data[0]), np.array(data[1]), np.array(data[2]), np.array(data[3])
print(x_train.shape, y_train.shape)
print(x_test.shape,y_test.shape)
 
# xx=numpy.array(X)
# data = torch.tensor(xx)
# data=data.unsqueeze(1)
# data=data.to(torch.float32)
x_train=np.transpose(x_train)
x_test=np.transpose(x_test)
# # 一维化
x_train = x_train.values.reshape(95, 10, 1)
print(x_train.shape)
x_train = x_train.astype('float32')
x_test = x_test.values.reshape(31, 10, 1)
x_test = x_test.astype('float32')
print(x_test.shape)
 
 
# # 将像素值做归一化,也就是从0~255的取值压缩到0~1之间
# # X_train /= 255
# # X_test /= 255
 
# 构建模型
model = keras.models.Sequential()
# model.build(input_shape)
# model.build(input_shape(None,95,10,1))
# 卷积层1 + relu
# 25 卷积核的数量 即输出的维度
# 3 每个过滤器的长度
model.add(Conv1D(10, 3, activation='tanh', input_shape=(95, 10), padding="same"))
model.add(Conv1D(10, 3, activation='tanh'))
# 池化层1
model.add(MaxPool1D(pool_size=4, strides=2))

 
# 卷积层2 + relu
model.add(Conv1D(10, 3,activation='tanh',  padding="same"))
model.add(MaxPool1D(pool_size=2, strides=2))
 
# 神经元随机失活
model.add(Dropout(0.1))
# 拉成一维数据
model.add(Flatten())
model.add(Dense(1, activation='linear'))
# # 全连接层1
# model.add(Dense(95))
# # 激活层
# model.add(Activation('relu'))
 
# # 随机失活
# model.add(Dropout(0.4))
# 全连接层2
# model.add(Dense(dense_num))
# # # Softmax评分
# model.add(Activation('linear'))
 
# 查看定义的模型

 
# 自定义优化器参数
# rmsprop = keras.optimizers.RMSprop(lr=0.001, rho=0.9, epsilon=1e-08, decay=0.0)
 
# lr表示学习速率
# decay是学习速率的衰减系数(每个epoch衰减一次)
# momentum表示动量项
# Nesterov的值是False或者True,表示使不使用Nesterov momentum
sgd = keras.optimizers.SGD(learning_rate=0.01, decay=1e-4, momentum=0.9, nesterov=True)
 
model.compile(optimizer='sgd', loss='mean_squared_error', metrics=['accuracy'])
 
# 训练
# history = model.fit(x_train, y_train, epochs=10, batch_size=1000,verbose=1)
history = model.fit(x_train, y_train, epochs=23, batch_size=30,verbose=1, validation_data=[x_test, y_test])
model.summary() 
# model.save()
y_pred_train = model.predict(x_train)
y_pred_test = model.predict(x_test)
print(y_pred_train.shape, y_pred_test.shape)

rc1 = r2_score(y_train, y_pred_train)
mes = mean_squared_error(y_train, y_pred_train)
rmsec1 = np.sqrt(mes)
rp1 = r2_score(y_test, y_pred_test)
mes = mean_squared_error(y_test, y_pred_test)
rmsep1 = np.sqrt(mes)

print(rc1,rmsec1,rp1,rmsep1)
# print(history.params)
插入代码片
Logo

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

更多推荐