
本文共 5347 字,大约阅读时间需要 17 分钟。
���������������������������������������������������������������������TensorFlow���������������������������������������������������������������������������������������������������������������������������������
������������
���������������������������������������������������������������������������������������������TensorFlow������������������������������
������������������������������������������������������������������������������������������������������������������������������������������������
import.tensorflow as tfimport numpy as np# ������������������������������������������np.random.seed(42)# ������������������������������������������1������������0.1������������������100x_vals = np.random.normal(1, 0.1, 100)# ������������������������������������������10.0y_vals = np.repeat(10.0, 100)# ���������������������������x_data = tf.placeholder(shape=[None, 1], dtype=tf.float32)y_target = tf.placeholder(shape=[None, 1], dtype=tf.float32)# ������������������������������������������������A = tf.Variable(tf.random_normal([1, 1]))# ���������������������������������������������������loss = tf.reduce_mean(tf.square(A * x_data - y_target))# ���������������������������������0.02optimizer = tf.train.GradientDescentOptimizer(learning_rate=0.02)training_step = optimizer.minimize(loss)# ���������������sess = tf.Session()sess.run(tf.global_variables_initializer())# ���������������������������15���������������������for i in range(100): # ������������������������ batch_size = 25 idx = np.random.choice(len(x_vals), batch_size) x_val = x_vals[idx] y_val = y_vals[idx] # ������������������ if i % 25 == 0: print(f'step: {i}, A = {sess.run(A)}') print(f'loss: {sess.run(loss, feed_dict={x_data: x_val, y_target: y_val})}') # ������������������ sess.run(training_step, feed_dict={x_data: x_val, y_target: y_val})# ������������������������������������������MSEtest_indices = np.random.choice(len(x_vals), 20, replace=False)x_test = x_vals[test_indices]y_test = y_vals[test_indices]mse_test = sess.run(loss, feed_dict={x_data: x_test, y_target: y_test})print(f'Test MSE: {mse_test:.2f}')
������������
������������������������������������������������������������������������������������������������������������������������
from sklearn import datasetsimport numpy as npimport tensorflow as tf# ���������������������������iris = datasets.load_iris()print(f'Feature names: {iris.feature_names}')print(f'Target names: {iris.target_names}')print(f'Data length: {len(iris.data)}')print(f'Target length: {len(iris.target)}')# ������������������0���1���������temp = [1 if x == 0 else 0 for x in iris.target]iris_target = np.array(temp)# ���������������������������������������������������������������������iris_2d = np.array([[x[2], x[3]] for x in iris.data])# ������������������������������������������������batch_size = 20train_indices = np.random.choice(len(iris_2d), size=len(iris_2d) * 0.8)test_indices = np.array(list(set(range(len(iris_2d))) - set(train_indices)))x_vals_train = iris_2d[train_indices]y_vals_train = iris_target[train_indices]x_vals_test = iris_2d[test_indices]y_vals_test = iris_target[test_indices]# ���������������x1_data = tf.placeholder(shape=[None, 1], dtype=tf.float32)x2_data = tf.placeholder(shape=[None, 1], dtype=tf.float32)y_target = tf.placeholder(shape=[None, 1], dtype=tf.float32)# ������������������A = tf.Variable(tf.random_normal(shape=[1, 1]))b = tf.Variable(tf.random_normal(shape=[1, 1]))my_output = A * x1_data - (x2_data * b + b)# ���������������������xentropy = tf.nn.sigmoid_cross_entropy_with_logits( labels=my_output, logits=y_target)# ������������������������������optimizer = tf.train.GradientDescentOptimizer(0.05)training_step = optimizer.minimize(xentropy)# ���������������������sess = tf.Session()sess.run(tf.global_variables_initializer())# ������������for i in range(1000): # ������������������������ idx = np.random.choice(len(x_vals_train), size=batch_size) x_val = x_vals_train[idx] y_val = y_vals_train[idx] if (i + 1) % 200 == 0: print(f'step: {i}, A = {sess.run(A)}, b = {sess.run(b)}') sess.run(training_step, feed_dict={x1_data: x_val[:, 0], x2_data: x_val[:, 1], y_target: y_val})# ������������������y_prediction = tf.squeeze(tf.round(tf.nn.sigmoid(my_output)))correct_prediction = tf.equal(y_prediction, y_target)accuracy = tf.reduce_mean(tf.cast(correct_prediction, tf.float32))# ���������������������������������acc_value_test = sess.run(accuracy, feed_dict={x1_data: x_vals_test[:, 0], x2_data: x_vals_test[:, 1], y_target: y_vals_test})# ���������������������������������acc_value_train = sess.run(accuracy, feed_dict={x1_data: x_vals_train[:, 0], x2_data: x_vals_train[:, 1], y_target: y_vals_train})print(f'Test Accuracy: {acc_value_test:.3f}')print(f'Train Accuracy: {acc_value_train:.3f}')
������
������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������
发表评论
最新留言
关于作者
