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)
我想建立一个模型来预测直角三角形的边,我给了两个输入(直角三角形两条边的长度)并想预测三角形的第三条边。
这是一个简单回归问题的代码,在本例中是直角三角形。
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)