正文
吴裕雄 python深度学习与实践(13)
小程序:扫一扫查出行
【扫一扫了解最新限行尾号】
复制小程序
【扫一扫了解最新限行尾号】
复制小程序
import numpy as np
import matplotlib.pyplot as pltx_data = np.random.randn(10)
print(x_data)
y_data = x_data * 0.3 + 0.15
print(y_data)plt.plot(x_data,y_data)
plt.scatter(x_data,y_data,c="r")
plt.show()
import numpy as np
import tensorflow as tf
import matplotlib.pyplot as pltx_data = np.random.randn(10)
y_data = x_data * 0.3 + 0.15weight = tf.Variable(0.5)
bias = tf.Variable(0.0)
y_model = weight * x_data + biasloss = tf.pow((y_model - y_data),2)
train_op = tf.train.GradientDescentOptimizer(0.01).minimize(loss)sess = tf.Session()
init = tf.initialize_all_variables()
sess.run(init)for _ in range(200):
sess.run(train_op)
print(weight.eval(sess),bias.eval(sess))plt.plot(x_data, y_data, 'ro', label='Original data')
plt.plot(x_data, sess.run(weight) * x_data + sess.run(bias), label='Fitted line')
plt.legend()
plt.show()
.........................
import numpy as np
import tensorflow as tf
import matplotlib.pyplot as pltx_data = np.random.randn(10)#.astype(np.float32)
y_data = x_data * 0.3 + 0.1weight = tf.Variable(0.5)
bias = tf.Variable(0.0)
x_ = tf.placeholder(tf.float32)
y_ = tf.placeholder(tf.float32)
y_model = weight * x_ + biasloss = tf.pow((y_model - y_),2)
train_op = tf.train.GradientDescentOptimizer(0.01).minimize(loss)sess = tf.Session()
init = tf.initialize_all_variables()
sess.run(init)for _ in range(5):
for (x,y) in zip(x_data,y_data):
sess.run(train_op,feed_dict={x_:x,y_:y})
print("weighe: " ,weight.eval(sess)," | bias: ",bias.eval(sess))plt.plot(x_data, y_data, 'ro', label='Original data')
plt.plot(x_data, sess.run(weight) * (x_data) + sess.run(bias), label='Fitted line')
plt.legend()
plt.show()
import numpy as np
import tensorflow as tf
import matplotlib.pyplot as pltthreshold = 1.0e-2
x_data = np.random.randn(10).astype(np.float32)
y_data = x_data * 3 + 1weight = tf.Variable(1.)
bias = tf.Variable(1.)
x_ = tf.placeholder(tf.float32)
y_ = tf.placeholder(tf.float32)
y_model = tf.add(tf.multiply(x_, weight), bias)loss = tf.reduce_mean(tf.pow((y_model - y_),2))
train_op = tf.train.GradientDescentOptimizer(0.01).minimize(loss)sess = tf.Session()
init = tf.initialize_all_variables()
sess.run(init)
flag = 1
while(flag):
for (x,y) in zip(x_data,y_data):
sess.run(train_op,feed_dict={x_:x,y_:y})
print(weight.eval(sess), bias.eval(sess))
if(sess.run(loss,feed_dict={x_:x_data,y_:y_data}) <= threshold):
flag = 0plt.plot(x_data, y_data, 'ro', label='Original data')
plt.plot(x_data, sess.run(weight) * (x_data) + sess.run(bias), label='Fitted line')
plt.legend()
plt.show()
......................................................
#coding:utf-8import numpy as npa = np.array([1,2,3])
b = np.array([7,8])
res = np.meshgrid(a,b)
for i in res:
print(i)
import numpy as np
import matplotlib.pyplot as pltx = np.array([[0, 1, 2], [0, 1, 2]])
y = np.array([[0, 0, 0], [1, 1, 1]])plt.plot(x, y,color='red',marker='.', linestyle='--')
plt.grid(True)
plt.show()
plt.plot(x, y, marker='.',markersize=10,linestyle='-.')
plt.grid(True)
plt.show()
import numpy as np
import matplotlib.pyplot as pltx = np.array([[0, 1, 2, 3],
[0, 1, 2, 3],
[0, 1, 2, 3],
[0, 1, 2, 3]])
y = np.array([[0, 0, 0, 0],
[1, 1, 1, 1],
[2, 2, 2, 2],
[3, 3, 3, 3]])plt.plot(x, y,marker='.', markersize=10,linestyle='-.')
plt.grid(True)
plt.show()
import numpy as np
import matplotlib.pyplot as pltx = np.array([0, 1, 2])
y = np.array([0, 1])
X, Y = np.meshgrid(x, y)
print(X)
print(Y)plt.plot(X, Y,color='red', marker='.', linestyle='')
plt.grid(True)
plt.show()
import numpy as np
import matplotlib.pyplot as pltx = np.linspace(0,1000,20)
y = np.linspace(0,500,20)X,Y = np.meshgrid(x, y)plt.plot(X, Y,color='limegreen', marker='.',linestyle='')
plt.grid(True)
plt.show()
import numpy as np
import matplotlib.pyplot as pltfrom matplotlib import cm
from mpl_toolkits.mplot3d import Axes3D
from matplotlib.ticker import LinearLocator, FormatStrFormatterfig = plt.figure(figsize=(16,12))
ax = fig.gca(projection="3d")#准备数据
x = np.arange(-5, 5, 0.25) #生成[-5,5] 间隔0.25的数列,间隔越小,曲面越平滑
y = np.arange(-5, 5, 0.25)
x, y = np.meshgrid(x,y) #格点矩阵,原来的x行向量向下复制len(y)此形成
r = np.sqrt(x ** 2 + y ** 2)
z = np.sin(r)surf = ax.plot_surface(x, y, z, cmap=cm.coolwarm) #cmap指color map#自定义z轴
ax.set_zlim(-1, 1)
ax.zaxis.set_major_locator(LinearLocator(20)) #z轴网格线的疏密,刻度的疏密,20表示刻度的个数
ax.zaxis.set_major_formatter(FormatStrFormatter('%.02f')) #将z的value子符串转为float,保留2位小数#设置坐标轴的label和标题
ax.set_xlabel('x', size=15)
ax.set_ylabel('y', size=15)
ax.set_zlabel('z', size=15)
ax.set_title("Surface plot", weight='bold', size=20)#添加右侧的色卡条
fig.colorbar(surf, shrink=0.6, aspect=8) #shrink表示整体收缩比例,aspect仅对bar的宽度有影响,
# aspect值越大,bar越窄plt.show()
import numpy as np
import matplotlib.pyplot as pltn=1024
X=np.random.normal(0,1,n)
Y=np.random.normal(0,1,n)
T=np.arctan2(Y,X)#返回给定的 X 及 Y 坐标值的反正切值。plt.scatter(X,Y,s=75,c=T,alpha=0.5)plt.xlim(-1.5,1.5)
plt.xticks(())
plt.ylim(-1.5,1.5)
plt.yticks(())plt.show()
import matplotlib.pyplot as plt
import numpy as npn=12
X=np.arange(n)
Y1=(1 - X / float(n)) * np.random.uniform(0.5,1.0,n)
Y2=(1 - X / float(n)) * np.random.uniform(0.5,1.0,n)plt.bar(X,+Y1,facecolor='#9999ff',edgecolor='white')
plt.bar(X,-Y2,facecolor='#ff9999',edgecolor='white')for x,y in zip(X,Y1):
plt.text(x+0.4,y+0.05,'%.2f' % y,ha='center',va='bottom')for x,y in zip(X,Y2):
plt.text(x+0.4,-y-0.05,'%.2f' % y,ha='center',va='bottom')plt.xlim(-1,n)
plt.xticks(())
plt.ylim(-1.25,1.25)
plt.yticks(())plt.show()
import numpy as np
import matplotlib.pyplot as pltdef f(x,y):
return (1 - x/2 + x**5 + y**3) * np.exp(-x**2,-y**2)n=256
x=np.linspace(-3,3,n)
y=np.linspace(-3,3,n)
X,Y=np.meshgrid(x,y)plt.contourf(X,Y,f(X,Y),8,alpha=0.75,cmap=plt.cm.hot)
C=plt.contour(X,Y,f(X,Y),8,colors='black',linewidth=0.5)plt.clabel(C,inline=True,fontsize=10)
plt.xticks(())
plt.yticks(())
plt.show()
import numpy as np
import matplotlib.pyplot as pltfrom mpl_toolkits.mplot3d import Axes3Dfig=plt.figure()
ax=Axes3D(fig)X=np.arange(-4,4,0.25)
Y=np.arange(-4,4,0.25)
X,Y=np.meshgrid(X,Y)
R=np.sqrt(X ** 2 + Y ** 2)
Z=np.sin(R)ax.plot_surface(X,Y,Z,rstride=1,cstride=1,cmap=plt.get_cmap('rainbow'))
ax.contourf(X,Y,Z,zdir='z',offset=-2,cmap=plt.get_cmap('rainbow'))plt.show()
import numpy as np
import tensorflow as tf
import matplotlib.pyplot as pltfrom mpl_toolkits.mplot3d import Axes3Dthreshold = 1.0e-2
x1_data = np.random.randn(100).astype(np.float32)
x2_data = np.random.randn(100).astype(np.float32)
y_data = x1_data * 2 + x2_data * 3 + 1.5weight1 = tf.Variable(1.)
weight2 = tf.Variable(1.)
bias = tf.Variable(1.)
x1_ = tf.placeholder(tf.float32)
x2_ = tf.placeholder(tf.float32)
y_ = tf.placeholder(tf.float32)y_model = tf.add(tf.add(tf.multiply(x1_, weight1), tf.multiply(x2_, weight2)),bias)
loss = tf.reduce_mean(tf.pow((y_model - y_),2))train_op = tf.train.GradientDescentOptimizer(0.01).minimize(loss)sess = tf.Session()
init = tf.initialize_all_variables()
sess.run(init)
flag = 1
while(flag):
for (x,y) in zip(zip(x1_data, x2_data),y_data):
sess.run(train_op, feed_dict={x1_:x[0],x2_:x[1], y_:y})
if sess.run(loss, feed_dict={x1_:x[0],x2_:x[1], y_:y}) <= threshold:
flag = 0fig = plt.figure()
ax = Axes3D(fig)
X, Y = np.meshgrid(x1_data, x2_data)
Z = sess.run(weight1) * (X) + sess.run(weight2) * (Y) + sess.run(bias)
ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap=plt.cm.hot)
ax.contourf(X, Y, Z, zdir='z', offset=-1, cmap=plt.cm.hot)
ax.set_zlim(-1, 1)
plt.show()