Tensorflow keras 数学问题的顺序模型

Tensorflow keras Sequential model for math problem

我想建立一个模型来预测直角三角形的边,我给了两个输入(直角三角形两条边的长度)并想预测三角形的第三条边。

这是一个简单回归问题的代码,在本例中是直角三角形。

from tensorflow import keras
import tensorflow as tf
import numpy as np

a=np.array([3,2,3,4,7,10,11,13,14,20])  #side a
b=np.array([4,5,6,9,8,11,12,14,16,42])  #side b
h=np.sqrt(a**2+b**2)       #hypotenuse side (creating ground truth dataset using sides a and b)
x=np.stack((a, b), axis=-1)
print(f'input: {x}')
print(f'output: {h}')


model=keras.Sequential([
  keras.layers.Dense(4,activation=keras.activations.relu,input_shape=[2]),
  keras.layers.Dense(2,activation=keras.activations.relu),
  keras.layers.Dense(1)
])
optimizer = tf.keras.optimizers.RMSprop(0.1)
model.compile(optimizer=tf.keras.optimizers.Adam(0.11),
             loss=tf.keras.losses.mean_squared_error)

训练模型。

model.fit(x,h, epochs=15)

预测。

model.predict([[3,4]])

输出: array([[5.0573754]], dtype=float32)