(windows10版)Tensorflow 实战Google深度学习框架学习笔记(二)

释放双眼,带上耳机,听听看~!

放弃老大哥式先垫基础再开火的老旧方法。python语言本就很优美很容易懂。直接上代码,看注释。不懂的百度,一堆。

下方高能,直接ctrl+C ——ctrl+v。不过建议手打,一来熟悉代码,二来加深印象,三来边学边动手,记忆更深刻,长进更快。

import tensorflow as tf
#通过numpy工具包生成模拟数据集
from numpy.random import RandomState
# 1. 定义神经网络的参数,输入和输出节点
#训练数据batch的大小
batch_size = 16
#产生随机变量,2行3列,方差为1,种子为1
w1= tf.Variable(tf.random_normal([2, 3], stddev=1, seed=1))
w2= tf.Variable(tf.random_normal([3, 1], stddev=1, seed=1))
# 数据是float32型,数据形状,行不定,列为2
#使用none作用是使用不大的batch大小。数据小时方便计算,大的话可能会导致内存溢出
x = tf.placeholder(tf.float32, shape=(None, 2), name="x-input")
# 使用placeholder的作用是把指定类型数据进行存储,在图计算时再把数据加入,
#因为使用常量的话,需要在图里添加节点,迭代百万上亿次任务效率会很低
#使用这种方法时,对输入要进行类型的约束
y_= tf.placeholder(tf.float32, shape=(None, 1), name='y-input')
# 2. 定义前向传播过程,损失函数及反向传播算法
a = tf.matmul(x, w1) #把x与w1进行乘法运算
y = tf.matmul(a, w2)
#定义损失函数(交叉熵)来刻画预测值与真实值的差距
cross_entropy = -tf.reduce_mean(y_ * tf.log(tf.clip_by_value(y, 1e-10, 1.0)))
#定义反向传播的优化方法
train_step = tf.train.AdamOptimizer(0.001).minimize(cross_entropy)
# 3. 通过随机数生成一个模拟数据集
rdm = RandomState(1)
X = rdm.rand(128,2)
Y = [[int(x1+x2 < 1)] for (x1, x2) in X]
# 4. 创建一个会话来运行TensorFlow程序
with tf.Session() as sess:
init_op = tf.global_variables_initializer()
sess.run(init_op)
# 输出目前(未经训练)的参数取值。
print("w1:", sess.run(w1))
print("w2:", sess.run(w2))
print("\n")
# 设定训练的轮数
STEPS = 5000
for i in range(STEPS):
#每次选择batch_size个样本进行训练
start = (i * batch_size) % 16
end = (i * batch_size) % 16 + batch_size
#使用选择的样本训练神经网络并更新参数
sess.run(train_step, feed_dict={x: X[start:end], y_: Y[start:end]})
#每隔1000次迭代计算所有数据上的交叉熵并输出
if i % 1000 == 0:
total_cross_entropy = sess.run(cross_entropy, feed_dict={x: X, y_: Y})
print("After %d training step(s), cross entropy on all data is %g" % (i, total_cross_entropy))
# 输出训练后的结果。
#结果越小,说明预测的结果与实际值之间的差距越小
print("\n")
print("w1:", sess.run(w1))

    print("w2:", sess.run(w2))

运行结果截图

给TA打赏
共{{data.count}}人
人已打赏
安全运维

MongoDB数据建模小案例:多列数据结构

2021-12-11 11:36:11

安全运维

Ubuntu上NFS的安装配置

2021-12-19 17:36:11

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索