深度学习的学习记录(四)

目录

遇到的问题

二刷隐藏层豆豆的课

第七课豆豆高维空间实验

第八节课豆豆实验

用keras框架复现第5节实验

用keras框架复现第6节实验



遇到的问题

用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了。

二刷隐藏层豆豆的课

对于激活函数 S(x)=\frac{1}{1+e^{x}}   ,S{}'(x)=\frac{e^{x}}{(1+e^{x})^{2}}=\frac{1+e^{x}-1}{(1+e^{x})^2}=S(x)(1-S(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
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值