我试图开发一个模型,预测化学配方成分的分数。您只需要选择成分,以及希望在最终混合物中获得哪些特性。对于Input1,我有一些关于组分的数据,例如粘度和密度。作为输入2,我有我需要的属性值。作为输出,它的(1,4)张量有4个分量分数,其和为1
作为训练数据,我有近20000个样本,这个数量并没有那么大,所以我认为它的模型应该过拟合。当我试着训练我的模型时,我决定一开始就过适应它。然而,它并没有过度拟合这些参数。该模型的最大精度约为50%,请帮助我提高模型精度
__________________________________________________________________________________________________
Layer (type) Output Shape Param # Connected to
==================================================================================================
Cov_inp (InputLayer) (None, 2, 4) 0
__________________________________________________________________________________________________
conv1d_18 (Conv1D) (None, 2, 128) 2176 Cov_inp[0][0]
__________________________________________________________________________________________________
max_pooling1d_18 (MaxPooling1D) (None, 1, 128) 0 conv1d_18[0][0]
__________________________________________________________________________________________________
flatten_18 (Flatten) (None, 128) 0 max_pooling1d_18[0][0]
__________________________________________________________________________________________________
Res_inp (InputLayer) (None, 1) 0
__________________________________________________________________________________________________
dense_158 (Dense) (None, 64) 8256 flatten_18[0][0]
__________________________________________________________________________________________________
dense_161 (Dense) (None, 64) 128 Res_inp[0][0]
__________________________________________________________________________________________________
dense_159 (Dense) (None, 128) 8320 dense_158[0][0]
__________________________________________________________________________________________________
dense_162 (Dense) (None, 128) 8320 dense_161[0][0]
__________________________________________________________________________________________________
dense_160 (Dense) (None, 256) 33024 dense_159[0][0]
__________________________________________________________________________________________________
dense_163 (Dense) (None, 256) 33024 dense_162[0][0]
__________________________________________________________________________________________________
dot_10 (Dot) (None, 1) 0 dense_160[0][0]
dense_163[0][0]
__________________________________________________________________________________________________
dense_164 (Dense) (None, 256) 512 dot_10[0][0]
__________________________________________________________________________________________________
dense_165 (Dense) (None, 128) 32896 dense_164[0][0]
__________________________________________________________________________________________________
dense_166 (Dense) (None, 64) 8256 dense_165[0][0]
__________________________________________________________________________________________________
dense_167 (Dense) (None, 32) 2080 dense_166[0][0]
__________________________________________________________________________________________________
dense_168 (Dense) (None, 4) 132 dense_167[0][0]
==================================================================================================
Total params: 137,124
Trainable params: 137,124
Non-trainable params: 0
建筑和损失,精度图如下
还有我的神经网络代码
X_features = Input(shape=(2,4),name='Cov_inp')
KV_data = Input(shape=(1,),name='Res_inp')
# Branch 1
layer1 = Conv1D(filters=128,kernel_size=4,activation='relu',padding='same',input_shape=(2,4))(X_features)
pooling1=MaxPooling1D(pool_size=2)(layer1)
flattern=Flatten()(pooling1)
dense_conv=Dense(64,activation='relu')(flattern)
dense_conv=Dense(128,activation='relu')(dense_conv)
dense_conv=Dense(256,activation='relu')(dense_conv)
# Branch 2
dense1=Dense(64,activation='relu')(KV_data)
dense2=Dense(128,activation='relu')(dense1)
dense4=Dense(256,activation='relu')(dense2)
#Concatination
addition=Dot(axes=1)([dense_conv, dense4])
final_dense = Dense(256,activation='relu')(addition)
final_dense = Dense(128,activation='relu')(final_dense)
final_dense = Dense(64,activation='relu')(final_dense)
final_dense = Dense(32,activation='relu')(final_dense)
out = Dense(4,activation='sigmoid')(final_dense)
from keras import backend as K
def root_mean_squared_error(y_true, y_pred):
return K.sqrt(K.mean(K.square(y_pred - y_true), axis=-1))
model = Model(inputs=[X_features, KV_data], outputs=out)
model.compile(loss=root_mean_squared_error, optimizer=adam, metrics=['accuracy'])
model.summary()
history=model.fit({'Cov_inp':dataset_X,'Res_inp':dataset_KV}, dataset_Y,validation_split=0.2, epochs=2000, batch_size=128, verbose=2)
目前没有回答
相关问题 更多 >
编程相关推荐