深度学习Tensorflow应用框架(Google工程师)

首先,我将与您分享工程师教授的教程。等待。最后,感谢收看!

#!/usr/bin/env .6

# -*- : utf-8 -*-

#获取

作为 tf

numpy 作为 np

。作为plt

#实用numpy在-0.5和0.5之间生成200个均匀分布的样本点,[:,np.]将一行转换为200行一列

= np.(-0.5,0.5,10)[:,np.]

#noise 是随机生成的

噪声 = np..(0,0.02,.shape)

= np.() + 噪声

#定义两个,[None,1]定义形状,无行未定义,1列

x = tf.(tf .,[None,1])

y = tf.(tf.,[None,1])

#构建一个简单的神经网络,输入一个X,通过神经网络计算出一个y,希望预测值和实际值接近,说明网络构建成功。

#定义神经网络中间层的权重,形状为一行10列,1代表一个输入,中间层有10个神经元

p>

= tf.(tf.([1,10]))

#偏置值初始化为0

= tf.(tf.zeros([1 ,10]))

# x 输入,所有矩阵,偏差值

= tf.(x,) +

#L1中间层输出,激活函数tanh,中间层输出

L1 = tf.nn.tanh()

#输出层

= tf.(tf.([ 10, 1]))

= tf.(tf.zeros([1, 1]))

#信号的总和,上一层的输出就是下一层Input的输出

= tf.(L1, ) +

# 通过激活函数

= tf.nn.tanh()

#二次成本函数

损失 = tf.(tf.(y-))

#实用的梯度下降训练

= tf.train. izer(0.1).(损失)

使用 tf.() 作为 sess:

#变量初始化

sess.run(tf.())

#培训

for _ in range(2000):

sess.run(, ={x: , y: })

#得到预测值

= sess.run(,={x:})

#绘图显示

plt.()

plt.(,)

plt.plot(,,’r-‘,lw =5)#红色实线,线宽为5

plt.show()

运行结果展示:

MNIST手写数字数据集下载地址:

train–idx3-ubyte.gz:训练集数据

train–idx1-ubyte.gz : 训练集标签

t10k–idx3-ubyte.gz:测试集数据

t10k–idx1-ubyte.gz: 测试集标签

下载的数据集分为两部分:60000行训练数据集(mnist.train)和10000行测试数据集(mnist.test)都是手写数字

每张图片包含28*28个像素,我们把这个数组展开成一个向量,长度为28*28=784.因此,在MNIST训练数据集mnist.train.中,一个形状为[ 60000,784]一个张量,第一维数用于对图像进行索引,第二维数用于识别每个图像中的像素。图像中一个像素的强度值在0-1之间

代码

# : utf-8

#In[2]:

作为 tf

来自…mnist

#In[3]:

#加载数据集,加入数据集,路径为当前路径,数据集将从网上下载,

# =True 将标签转换为只有0.1的格式,一位为1,其他位为0

mnist = .(“”, =True)

#每个batch的大小,在训练模型的时候,不是一个一个,而是一次100个batch,也就是一次放100张图片,矩阵形式

= 100

# 计算总共有多少批次

= mnist.train。 // #//代表整体的意思。

#定义两个,None代表任意值,一会儿就变成100,784=28*28

x = tf.(tf., [None, 784])

#从0到9的数字,一共10个数字

y = tf.(tf., [None, 10])

p>

#这里创建一个简单的神经网络,一共2层,即输入层和输出层,没有隐藏层

# #输出一共10个数字,即10个

## W,

W = tf.(tf.zeros([784, 10]))

#偏差值

b = tf.(tf.zeros([10]))

#偏差值

= tf.nn.(tf.(x, W) + b)

#二次成本函数

损失 = tf.(tf.(y – ))

#使用梯度下降,0.2的学习率,最小化损失

= tf.train.izer(0.2).(loss)

#初始化变量

init = tf.()

# 结果存储在布尔列表中

#测试聚类的准确率,equal比较两个参数的大小,相同为真,差为假,(y,1)求两个值的最大值

#tf.(y,1) , 为 0 或为 1 , 如果为 1 则范围 1 的位置

#tf.(,1)

#结果存储在布尔列表中,预测值与实际值进行比较

= tf.equal(tf.(y, 1), tf.(, 1)) # 返回一维张量中最大值的位置

#求准确率

#cast 比较预测,格式化预测结果,将bool类型转换为类型,然后计算平均值

=tf. (tf.cast(, tf.))

使用 tf.() 作为 sess:

sess.run(init)

for epoch in range(21):#迭代21个周期,所有图片循环21次

对于范围内的批处理():

, = mnist.train.()

sess.run(, ={x: , y: })

acc = sess.run(, ={x: mnist.test., y: mnist.test.})

print(“Iter” + str(epoch) + “, ” + str(acc))

#In[]:

运行结果展示:

[@ ~]$ .6 MNIST.py

/home///lib/.6/site-/h5py/.py:36: : 从 `float` 到 `np.` 是 .在 中,它将为 `np. == np.dtype(float).type`.

从 ._conv 作为

::From MNIST.py:12: (from ..learn..learn..mnist) 现在和将来都在一个 .

为:

使用 /mnist/.py 等 /.

::From /home///lib/.6/site-///learn//learn//mnist.py:260: (来自 ..learn..learn..base )现在和将来一个。

为:

编写你自己的逻辑。

::From /home///lib/.6/site-///learn //learn//mnist.py:262: (from ..learn..learn..mnist) 是并且将会在一个。

为:

为此使用 tf.data。

/train–idx3-ubyte.gz

::From /home///lib/.6/site-///learn//learn// mnist.py:267: (from ..learn..learn..mnist) 是并且将会在一个。

为:

为此使用 tf.data。

为:

为此使用 tf.data。

p>

/train–idx1-ubyte.gz

::From /home///lib/.6/site-///learn//learn//mnist.py:110 : (from ..learn..learn..mnist) 将在一个。

为:

使用 tf.上。

/t10k –idx3-ubyte.gz

/t10k–idx1-ubyte.gz

::来自 /home///lib/.6/site-///learn/ /learn//mnist.py:290: 。 (来自 ..learn..learn..mnist)现在和将来都在一个 .

为:

使用如/mnist/.py from /.

2018-11-06 09:07:50.: I /core//:69] 带有互操作的新池:2. 优化使用以获得最佳效果。

迭代 0,0.8301

迭代 1,0.8708

第 2 章,0.8809

迭代 3,0.8875

迭代 4,0.894

第 5 次,0.8969

Iter 6,0.8988

第 7 次,0.9015

Iter 8,0.9037

第 9 次,0.9051

迭代 10,0.9062

迭代 11,0.9073

Iter 12,0.9077

Iter 13,0.9088

Iter 14,0. 9096

Iter 15,0.9107

Iter 16,0.9113

第 17 节,0.9128

Iter 18,0.9125

第 19 次,0.9134

Iter 20,0.9141

[@ ~]$ ls

MNIST.py

[@~]$ ls /

a.sh t10k–idx3-ubyte .gz t10k–idx1-ubyte.gz train–idx3-ubyte.gz train–idx1-ubyte.gz

[@~]$

© 版权声明
THE END
喜欢就支持一下吧
点赞12赞赏 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容