# To support both python 2 and python 3from __future__ import division, print_function, unicode_literals
# Common importsimport numpy as np
import os
# to make this notebook's output stable across runsdefreset_graph(seed=42):
tf.reset_default_graph()
tf.set_random_seed(seed)
np.random.seed(seed)
# To plot pretty figures
%matplotlib inline
import matplotlib
import matplotlib.pyplot as plt
plt.rcParams['axes.labelsize'] = 14
plt.rcParams['xtick.labelsize'] = 12
plt.rcParams['ytick.labelsize'] = 12# Where to save the figures
PROJECT_ROOT_DIR = "."
CHAPTER_ID = "ann"defsave_fig(fig_id, tight_layout=True):
path = os.path.join(PROJECT_ROOT_DIR, "images", CHAPTER_ID, fig_id + ".png")
print("Saving figure", fig_id)
if tight_layout:
plt.tight_layout()
plt.savefig(path, format='png', dpi=300)
感知机
import numpy as np
from sklearn.datasets import load_iris
from sklearn.linear_model import Perceptron
iris = load_iris()
X = iris.data[ : ,(2, 3)] # petal length, petal width
y = (iris.target == 0).astype(np.int)
per_clf = Perceptron(random_state=42)
per_clf.fit(X, y)
y_pred = per_clf.predict([[2.0 , 0.5]])
print(y_pred)
C:\Users\Xiaowang Zhang\Anaconda3\lib\site-packages\sklearn\linear_model\stochastic_gradient.py:128: FutureWarning: max_iter and tol parameters have been added in <class 'sklearn.linear_model.perceptron.Perceptron'> in 0.19. If both are left unset, they default to max_iter=5 and tol=None. If tol is not None, max_iter defaults to max_iter=1000. From 0.21, default max_iter will be 1000, and default tol will be 1e-3.
"and default tol will be 1e-3." % type(self), FutureWarning)
[1]
with tf.Session() as sess:
init.run()
for epoch in range(n_epochs):
for iteration in range(mnist.train.num_examples// batch_size):
X_batch, y_batch = mnist.train.next_batch(batch_size)
sess.run(training_op, feed_dict={X:X_batch,y:y_batch})
acc_train = accuracy.eval(feed_dict={X:X_batch, y:y_batch})
acc_val = accuracy.eval(feed_dict={X:mnist.validation.images,
y:mnist.validation.labels})
print(epoch, " Train accuracy:", acc_train," Val accuracy:", acc_val)
save_path = saver.save(sess,"./my_model_final.ckpt")
0 Train accuracy: 0.92 Val accuracy: 0.9186
1 Train accuracy: 0.92 Val accuracy: 0.9354
2 Train accuracy: 0.96 Val accuracy: 0.9454
3 Train accuracy: 0.92 Val accuracy: 0.9514
4 Train accuracy: 0.88 Val accuracy: 0.9574
5 Train accuracy: 0.96 Val accuracy: 0.9592
6 Train accuracy: 0.94 Val accuracy: 0.9618
7 Train accuracy: 0.98 Val accuracy: 0.9634
8 Train accuracy: 0.96 Val accuracy: 0.9664
9 Train accuracy: 0.98 Val accuracy: 0.9652
10 Train accuracy: 1.0 Val accuracy: 0.9668
11 Train accuracy: 1.0 Val accuracy: 0.9696
12 Train accuracy: 0.94 Val accuracy: 0.9686
13 Train accuracy: 0.98 Val accuracy: 0.9708
14 Train accuracy: 1.0 Val accuracy: 0.971
15 Train accuracy: 1.0 Val accuracy: 0.973
16 Train accuracy: 0.98 Val accuracy: 0.973
17 Train accuracy: 1.0 Val accuracy: 0.9748
18 Train accuracy: 1.0 Val accuracy: 0.9744
19 Train accuracy: 0.96 Val accuracy: 0.9724
20 Train accuracy: 0.96 Val accuracy: 0.9758
21 Train accuracy: 1.0 Val accuracy: 0.9764
22 Train accuracy: 0.98 Val accuracy: 0.9782
23 Train accuracy: 1.0 Val accuracy: 0.9776
24 Train accuracy: 1.0 Val accuracy: 0.9768
25 Train accuracy: 1.0 Val accuracy: 0.9774
26 Train accuracy: 1.0 Val accuracy: 0.9766
27 Train accuracy: 1.0 Val accuracy: 0.9774
28 Train accuracy: 0.98 Val accuracy: 0.9794
29 Train accuracy: 0.94 Val accuracy: 0.9776
30 Train accuracy: 1.0 Val accuracy: 0.9788
31 Train accuracy: 0.98 Val accuracy: 0.9784
32 Train accuracy: 0.98 Val accuracy: 0.9782
33 Train accuracy: 1.0 Val accuracy: 0.9786
34 Train accuracy: 0.98 Val accuracy: 0.978
35 Train accuracy: 1.0 Val accuracy: 0.9792
36 Train accuracy: 1.0 Val accuracy: 0.9782
37 Train accuracy: 1.0 Val accuracy: 0.9788
38 Train accuracy: 1.0 Val accuracy: 0.9784
39 Train accuracy: 1.0 Val accuracy: 0.9778
with tf.Session() as sess:
saver.restore(sess, "./my_model_final.ckpt") # or better, use save_path
X_new_scaled = mnist.test.images[:20]
Z = logits.eval(feed_dict={X: X_new_scaled})
y_pred = np.argmax(Z, axis=1)
INFO:tensorflow:Restoring parameters from ./my_model_final.ckpt
INFO:tensorflow:Restoring parameters from ./my_model_final.ckpt
introduction to artificial neural networks# To support both python 2 and python 3from __future__ import division, print_function, unicode_literals# Common importsimport numpy as npimport os