如何解决我可以预测角膜的反三角函数吗?
首先,我生成2000个随机数作为x(作为输入,范围从-25到-27,然后y = cos(x)作为 标签以进入完整的连接层。该模型的损失函数如图所示, 在此处输入图片描述,我对结果感到满意。 然后,我交换X和y,y作为输入,X作为标签,并将它们输入到同一模型中。损失 功能如下图所示。无论训练集还是验证集, 性能很差。 我尝试了conv1d,但在训练集或验证集中都不好。 最后,我尝试了LSTM,结果在训练集上是好的,但在验证集上却很差。 问题是什么?我该如何解决?可以使用keras来预测逆三角函数吗?
import numpy as np
import tensorflow as tf
import tensorflow.keras as keras
from tensorflow.keras import layers
from pandas import DataFrame
import os
from sklearn import metrics
from sklearn.model_selection import train_test_split
from tensorflow.keras.callbacks import EarlyStopping
import matplotlib
import matplotlib.pyplot as plt
import numpy as np
from keras.models import Sequential
from keras.wrappers.scikit_learn import KerasRegressor
from sklearn.model_selection import cross_val_score
from sklearn.model_selection import KFold
from sklearn.preprocessing import StandardScaler
from sklearn.pipeline import Pipeline
from keras.layers import Dense,LSTM,Dropout
from sklearn.preprocessing import MinMaxScaler
import matplotlib.pyplot as plt
x=np.random.randn(2000,1)*8
print(x[0:10])
print(x.shape)
print('x.max',x.max())
print('x.min',x.min())
y = np.cos(x)
print('y.shape',y.shape)
x_train,x_test,y_train,y_test = train_test_split(y,x,test_size=0.3,random_state=42)
#x_train,y_test = train_test_split(x,y,random_state=42)
model = Sequential()
model.add(Dense(100,input_shape = (1,),activation='relu'))
model.add(Dense(50,activation='relu'))
model.add(Dense(1))
model.compile(loss='mean_squared_error',optimizer = 'adam')
history = model.fit(x_train,validation_data=(x_test,y_test),verbose=1,epochs=300)
pred = model.predict(x_test)
history_dict = history.history
history_dict.keys()
loss = history_dict['loss']
val_loss = history_dict['val_loss']
epochs = range(1,len(loss) + 1)
plt.figure(2)
# "bo" is for "blue dot"
plt.plot(epochs,loss,'bo',label='Training loss')
# b is for "solid blue line"
plt.plot(epochs,val_loss,'b',label='Validation loss')
plt.title('Training and validation loss')
plt.xlabel('Epochs')
plt.ylabel('Loss')
plt.legend()
plt.show()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。