我试图开发一个神经网络,能够从4个输入参数预测二维CAD的啮合,这些参数是CAD的尺寸。
我将此问题作为回归问题,使用MSE作为损失函数,将adamax作为优化函数,但结果是损失约为350。我尝试过用StandardScalar()和规范化器来拟合数据,但是结果太糟糕了。
我得到了精确的结果= 1,但结果一点也不令人满意。我不知道神经网络是如何测量评估()函数的这种准确性的。我想用欧几里德函数来描述误差,因为我的结果是坐标。如何在神经网络中实现这一功能?
ANN有406个输出,一半用于x坐标,另一半用于Y坐标。是否有可能使一个具有203个输出的神经网络在每个节点(XY)上具有两个值?或者您推荐的其他解决方案技术。我附上了我如何开发人工神经网络的结果。
inr形状为:(144,4)。
orf形状为:(144 406)
inr=inRef.to_numpy()
orf=outref.to_numpy()
print(inr.shape,orf.shape)
red1= Sequential()
red1.add(Dense(500,activation='linear',input_shape=(4,),kernel_initializer='normal'))
red1.add(Dense(500,activation='linear',kernel_initializer='normal'))
red1.add(Dense(406,activation='linear',kernel_initializer='normal'))
kera.utils.plot_model(red1, 'pcel.png', show_shapes=True)
red1.compile(loss='mean_squared_error',optimizer='Adamax')
rp1,rp2,rx1,rx2= train_test_split(inr,orf, test_size = 0.1, random_state = 0)
red1.fit(rp1,rx1,validation_split=0.45, validation_freq=2,epochs =100,verbose=0)
prt,acu=red1x.evaluate(rp2,rx2)在这方面我真的需要帮助,非常感谢你的支持。
发布于 2020-08-25 17:32:49
坏结果-为此,您已经尝试了超参数调优以及特性工程以获得好的结果。同时,尝试不同的模型架构,以尽量减少损失。这部分是关于实验的。没有人能给出正确的答案。
精度--因为您正在使用回归来解决您的问题,所以精度并不是要选择的度量。对于回归问题,可以使用根均方度量。准确性是一种适合于分类任务而不是回归任务的度量。
用两个值构造203个输出-您可以使用tensorflow中的funtional来实现这一点。使用functional,可以有多个输入,也可以有多个输出。在本例中,我将向您展示这两个案例。您可以修改下面的示例来创建模型。代码:
def create_model():
input1 = tf.keras.Input(shape=(13,), name = 'I1')
input2 = tf.keras.Input(shape=(6,), name = 'I2')
hidden1 = tf.keras.layers.Dense(units = 4, activation='relu')(input1)
hidden2 = tf.keras.layers.Dense(units = 4, activation='relu')(input2)
merge = tf.keras.layers.concatenate([hidden1, hidden2])
hidden3 = tf.keras.layers.Dense(units = 3, activation='relu')(merge)
output1 = tf.keras.layers.Dense(units = 2, activation='linear', name ='O1')(hidden3)
output2 = tf.keras.layers.Dense(units = 2, activation='linear', name = 'O2')(hidden3)
model = tf.keras.models.Model(inputs = [input1,input2], outputs = [output1,output2])
model.compile(optimizer='Adamax',
loss='mean_squared_error',
metrics=[tf.keras.metrics.RootMeanSquaredError()])
return model
model = create_model3()
tf.keras.utils.plot_model(model, 'my_first_model.png', show_shapes=True)图片:

用于培训:
history = model.fit(
x = {'I1':x1, 'I2':x2},
y = {'O1':y1, 'O2': y2},
batch_size = 32,
epochs = 10,
verbose = 1,
callbacks = None
# validation_data = [(val_data,new_val_data),(val_labels, new_val_labels)]
)https://stackoverflow.com/questions/63582294
复制相似问题