用Python做TensorFlow

import numpy as np
import matplotlib.pyplot as plt
import tensorflow as tf

observations = 1000
xs = np.random.uniform(low=-10, high=10, size=(observations,1))
zs = np.random.uniform(-10,10,(observations,1))

generated_inputs = np.column_stack((xs,zs))

noise = np.random.uniform(-1,1,(observations,1))

generated_targets = 2*xs - 3*zs + 5 + noise

np.savez('TF_intro', inputs=generated_inputs, targets=generated_targets)

# Solving with TensorFlow
training_data = np.load('TF_intro.npz')

input_size = 2
output_size = 1

model = tf.keras.Sequential([
    tf.keras.layers.Dense(output_size,
                          kernel_initializer=tf.random_uniform_initializer(minval=-0.1, maxval=0.1),
                          bias_initializer=tf.random_uniform_initializer(minval=-0.1, maxval=0.1)
                          )
])

# learning_rate is an integral part of the optimizer
custom_optimizer = tf.keras.optimizers.SGD(learning_rate=0.02)

model.compile(optimizer=custom_optimizer, loss='mean_squared_error')

# verbose = 0, stands for silent or no output about the training is displayed
# verbose = 1, stands for 'progress bar'
# verbose = 2, stands for 'one line per epoch'
model.fit(training_data['inputs'], training_data['targets'], epochs=100, verbose=2)

# Extract the weights and bias
print(model.layers[0].get_weights())

weights = model.layers[0].get_weights()[0]
print("weights")
print(weights)

bias = model.layers[0].get_weights()
print("bias")
print(bias)
print("*******")

# Extract the outputs (make predictions)
print(model.predict_on_batch(training_data['inputs']))
print("****")

print(training_data['targets'].round(1))
print("*****")

# Plotting the data
plt.plot(np.squeeze(model.predict_on_batch(training_data['inputs'])), np.squeeze(training_data['targets']))
plt.xlabel('outputs')
plt.ylabel('targets')
plt.show()
print("********")

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/BSCHN123/article/details/103765873