目录
遇到的问题
用CUDA进行加速时显示有CUDART64_110.DLL找不到,于是上网搜索解决方法,再这个网址cudart64_110.dll free download | DLL‑files.com下载放到cuda的bin目录下,运行项目显示能打开,但是其他的几个dll包找不到,于是下载了对应版本的cudnn把它的bin目录的包copy到cuda的bin目录,但是下载的cudnn的包里没有缺失的那些包,可能是自己的tensorflow版本太高,低版本的cuda找不到,因为我的显卡是1050的,对应的cuda版本是9.0的cuda。上个月因为看李沐的课,看到沐神的代码显示结果和我不一样所以把tf更到2.x了。
二刷隐藏层豆豆的课
对于激活函数 ,
第5节的激活函数的实验里的纵坐标是有毒概率,横坐标是大小。
之前的实验都是探究豆豆的大小和毒性的关系,现在探究的是豆豆的大小和有毒的概率,更加直观,因为就像人一样,我们都是更加直观的看一些东西。这里也是想让海底生物小蓝有同样的思想。
先根据大小来对应毒性的强度,再把毒性的强度进行一个判断,如果毒性大于一个值,从而判断其有毒的概率。而这个判断的函数我们用的是sigmoid函数。
复现代码,找错误,分析。过两天再复现一次。
第七课豆豆高维空间实验
此次实验为有两个输入,分别为豆豆的大小和豆豆的颜色,这两个输入来判断豆豆有毒的概率
对于上节课的单输入的两层的神经网络,如果本次实验也是有两层神经网络,那将会十分复杂,所以要引入向量,矩阵,和张量,这是数学上来说,对于编码来说统一说成数组。
此次豆豆实验数据 dataset7.py
import numpy as np
def get_beans(counts):
xs = np.random.rand(counts,2)*2
ys = np.zeros(counts)
for i in range(counts):
x = xs[i]
if (x[0]-0.5*x[1]-0.1)>0:
ys[i] = 1
return xs,ys
def get_beans2(counts):
xs = np.random.rand(counts,2)*2
ys = np.zeros(counts)
for i in range(counts):
x = xs[i]
if (np.power(x[0]-1,2)+np.power(x[1]-0.3,2))<0.5:
ys[i] = 1
return xs,ys
封装一个画图的工具,画图直接调用即可 plot_utils.py
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
import numpy as np
def show_scatter(xs,y):
x = xs[:,0]
z = xs[:,1]
fig = plt.figure()
ax = Axes3D(fig)
ax.scatter(x, z, y)
plt.show()
def show_surface(x,z,forward_propgation):
x = np.arange(np.min(x),np.max(x),0.1)
z = np.arange(np.min(z),np.max(z),0.1)
x,z = np.meshgrid(x,z)
y = forward_propgation(x,z)
fig = plt.figure()
ax = Axes3D(fig)
ax.plot_surface(x, z, y, cmap='rainbow')
plt.show()
def show_scatter_surface(xs,y,forward_propgation):
x = xs[:,0]
z = xs[:,1]
fig = plt.figure()
ax = Axes3D(fig)
ax.scatter(x, z, y)
x = np.arange(np.min(x),np.max(x),0.01)
z = np.arange(np.min(z),np.max(z),0.01)
x,z = np.meshgrid(x,z)
y = forward_propgation(x,z)
ax.plot_surface(x, z, y, cmap='rainbow')
plt.show()
import dataset7
import numpy as np
import plot_utils
m=100
xs,ys=dataset7.get_beans(m)
print(xs)
print(ys)
plot_utils.show_scatter(xs,ys)
w1=0.1
w2=0.1
b=0.1
x1s=xs[:,0]
x2s=xs[:,1]
def forword_propgation(x1s,x2s):
z=w1*x1s+w2*x2s+b
a=1/(1+np.exp(-z))
return