import tensorflow as tf
import numpy as np
data = np.array([[-0.5, 7.7],
[1.8, 98.5],
[0.9, 57.8],
[0.4, 39.2],
[-1.4, -15.7],
[-1.4, -37.3],
[-1.8, -49.1],
[1.5, 75.6],
[0.4, 34.0],
[0.8, 62.3]])
x_train = np.expand_dims(data[:, 0], axis=1).astype(np.float32)
y_train = np.expand_dims(data[:, 1], axis=1).astype(np.float32)
dataset = tf.data.Dataset.from_tensor_slices((x_train, y_train))
dataset = dataset.shuffle(buffer_size=len(x_train))
dataset = dataset.batch(2).prefetch(tf.data.experimental.AUTOTUNE)
model = tf.keras.Sequential([
tf.keras.layers.Dense(1, input_shape=(1,))
])
model.compile(optimizer=tf.keras.optimizers.SGD(learning_rate=0.01),
loss='mean_squared_error')
epoch = 500
history = model.fit(dataset, epochs=epoch, verbose=1)
model.save("model.linear.h5")
loader_model = tf.keras.models.load_model("model.linear.h5")
input_data = np.array([1.8]).reshape(-1, 1)
pre = loader_model.predict(input_data)
print(f"Model result: {pre[0][0]:.3f}")
