如何通过Tensorflow搭建一个神经网络
发表于:2025-11-08 作者:千家信息网编辑
千家信息网最后更新 2025年11月08日,今天小编给大家分享一下如何通过Tensorflow搭建一个神经网络的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获
千家信息网最后更新 2025年11月08日如何通过Tensorflow搭建一个神经网络
今天小编给大家分享一下如何通过Tensorflow搭建一个神经网络的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。
一、Tensorlow结构
import tensorflow as tfimport numpy as np #创建数据x_data = np.random.rand(100).astype(np.float32)y_data = x_data*0.1+0.3 #创建一个 tensorlow 结构weights = tf.Variable(tf.random_uniform([1], -1.0, 1.0))#一维,范围[-1,1]biases = tf.Variable(tf.zeros([1])) y = weights*x_data + biases loss = tf.reduce_mean(tf.square(y - y_data))#均方差函数 #建立优化器,减少误差,提高参数准确度,每次迭代都会优化optimizer = tf.train.GradientDescentOptimizer(0.5)#学习率为0.5(<1)train = optimizer.minimize(loss)#最小化损失函数 #初始化不变量init = tf.global_variables_initializer() with tf.Session() as sess: sess.run(init) #train for step in range(201): sess.run(train) if step % 20 == 0: print(step, sess.run(weights), sess.run(biases))
二、session的使用
import tensorflow as tf matrix1 = tf.constant([[3, 3]])matrix2 = tf.constant([[2], [2]]) product = tf.matmul(matrix1, matrix2) #method1sess = tf.Session()result2 = sess.run(product)print(result2) #method2# with tf.Session() as sess:# result2 = sess.run(product)# print(result2)
三、Variable的使用
import tensorflow as tf state = tf.Variable(0, name = 'counter')#变量初始化# print(state.name)one = tf.constant(1)new_value = tf.add(state, one)#将state用new_value代替updata = tf.assign(state, new_value) #变量激活init = tf.global_variables_initializer() with tf.Session() as sess: sess.run(init) for _ in range(3): sess.run(updata) print(sess.run(state))
四、placeholder的使用
#给定type,tf大部分只能处理float32数据input1 = tf.placeholder(tf.float32)input2 = tf.placeholder(tf.float32) output = tf.multiply(input1, input2) with tf.Session() as sess: print(sess.run(output, feed_dict={input1:[7.], input2:[2.]}))五、激活函数 六、添加层
import tensorflow as tfimport numpy as npimport matplotlib.pyplot as plt def add_layer(inputs, in_size, out_size, activation_function = None): Weights = tf.Variable(tf.random_normal([in_size, out_size]))#正态分布 biases = tf.Variable(tf.zeros([1, out_size])+0.1) #1行,out_size列,初始值不推荐为0,所以加上0.1 Wx_plus_b = tf.matmul(inputs, Weights) + biases #Weights*x+b的初始化值,也是未激活的值 #激活 if activation_function is None: #如果没有设置激活函数,,则直接把当前信号原封不动的传递出去 outputs = Wx_plus_b else: #如果设置了激活函数,则由此激活函数对信号进行传递或抑制 outputs = activation_function(Wx_plus_b) return outputs
七、创建一个神经网络
import tensorflow as tfimport numpy as npimport matplotlib.pyplot as plt def add_layer(inputs, in_size, out_size, activation_function = None): Weights = tf.Variable(tf.random_normal([in_size, out_size]))#正态分布 biases = tf.Variable(tf.zeros([1, out_size])+0.1) #1行,out_size列,初始值不推荐为0,所以加上0.1 Wx_plus_b = tf.matmul(inputs, Weights) + biases #Weights*x+b的初始化值,也是未激活的值 #激活 if activation_function is None: #如果没有设置激活函数,,则直接把当前信号原封不动的传递出去 outputs = Wx_plus_b else: #如果设置了激活函数,则由此激活函数对信号进行传递或抑制 outputs = activation_function(Wx_plus_b) return outputs """定义数据形式"""#创建一列(相当于只有一个属性值),(-1,1)之间,有300个单位,后面是维度,x_data是有300行x_data = np.linspace(-1, 1, 300)[:, np.newaxis]#np.linspace在指定间隔内返回均匀间隔数字#加入噪声,均值为0,方差为0.05,形状和x_data一样noise = np.random.normal(0, 0.05, x_data.shape)#定义y的函数为二次曲线函数,同时增加一些噪声数据y_data = np.square(x_data) - 0.5 + noise #定义输入值,输入结构的输入行数不固定,但列就是1列的值xs = tf.placeholder(tf.float32, [None, 1])ys = tf.placeholder(tf.float32, [None, 1]) """建立网络"""#定义隐藏层,输入为xs,输入size为1列,因为x_data只有一个属性值,输出size假定有10个神经元的隐藏层,激活函数relul1 = add_layer(xs, 1, 10, activation_function=tf.nn.relu)#定义输出层,输出为l1输入size为10列,也就是l1的列数,输出size为1,这里的输出类似y_data,因此为1列prediction = add_layer(l1, 10, 1,activation_function=None) """预测"""#定义损失函数为差值平方和的平均值loss = tf.reduce_mean(tf.reduce_sum(tf.square(ys-prediction),reduction_indices=[1])) """训练"""#进行逐步优化的梯度下降优化器,学习率为0.1,以最小化损失函数进行优化train_step = tf.train.GradientDescentOptimizer(0.1).minimize(loss)#初始化模型所有参数init = tf.global_variables_initializer() #可视化with tf.Session() as sess: sess.run(init) for i in range(1000):#学习1000次 sess.run(train_step, feed_dict={xs:x_data, ys:y_data}) if i%50==0: print(sess.run(loss, feed_dict={xs:x_data, ys:y_data}))八、可视化
import tensorflow as tfimport numpy as npimport matplotlib.pyplot as plt def add_layer(inputs, in_size, out_size, activation_function = None): Weights = tf.Variable(tf.random_normal([in_size, out_size]))#正态分布 biases = tf.Variable(tf.zeros([1, out_size])+0.1) #1行,out_size列,初始值不推荐为0,所以加上0.1 Wx_plus_b = tf.matmul(inputs, Weights) + biases #Weights*x+b的初始化值,也是未激活的值 #激活 if activation_function is None: #如果没有设置激活函数,,则直接把当前信号原封不动的传递出去 outputs = Wx_plus_b else: #如果设置了激活函数,则由此激活函数对信号进行传递或抑制 outputs = activation_function(Wx_plus_b) return outputs """定义数据形式"""#创建一列(相当于只有一个属性值),(-1,1)之间,有300个单位,后面是维度,x_data是有300行x_data = np.linspace(-1, 1, 300)[:, np.newaxis]#np.linspace在指定间隔内返回均匀间隔数字#加入噪声,均值为0,方差为0.05,形状和x_data一样noise = np.random.normal(0, 0.05, x_data.shape)#定义y的函数为二次曲线函数,同时增加一些噪声数据y_data = np.square(x_data) - 0.5 + noise #定义输入值,输入结构的输入行数不固定,但列就是1列的值xs = tf.placeholder(tf.float32, [None, 1])ys = tf.placeholder(tf.float32, [None, 1]) """建立网络"""#定义隐藏层,输入为xs,输入size为1列,因为x_data只有一个属性值,输出size假定有10个神经元的隐藏层,激活函数relul1 = add_layer(xs, 1, 10, activation_function=tf.nn.relu)#定义输出层,输出为l1输入size为10列,也就是l1的列数,输出size为1,这里的输出类似y_data,因此为1列prediction = add_layer(l1, 10, 1,activation_function=None) """预测"""#定义损失函数为差值平方和的平均值loss = tf.reduce_mean(tf.reduce_sum(tf.square(ys-prediction),reduction_indices=[1])) """训练"""#进行逐步优化的梯度下降优化器,学习率为0.1,以最小化损失函数进行优化train_step = tf.train.GradientDescentOptimizer(0.1).minimize(loss)#初始化模型所有参数init = tf.global_variables_initializer() #可视化with tf.Session() as sess: sess.run(init) fig = plt.figure()#先生成一个图片框 #连续性画图 ax = fig.add_subplot(1, 1, 1)#编号为1,1,1 ax.scatter(x_data, y_data)#画散点图 #不暂停 plt.ion()#打开互交模式 # plt.show() #plt.show绘制一次就暂停了 for i in range(1000):#学习1000次 sess.run(train_step, feed_dict={xs:x_data, ys:y_data}) if i%50==0: try: #画出一条后,抹除掉,去除第一个线段,但是只有一个相当于抹除当前线段 ax.lines.remove(lines[0]) except Exception: pass prediction_value = sess.run(prediction, feed_dict={xs:x_data}) lines = ax.plot(x_data,prediction_value,'r-',lw=5)#lw线宽 #暂停 plt.pause(0.5)以上就是"如何通过Tensorflow搭建一个神经网络"这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注行业资讯频道。
函数
激活
输入
输出
信号
数据
学习
神经
网络
只有
损失
噪声
属性
知识
篇文章
结构
神经网络
最小
原封不动
参数
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
大话2服务器人气
网络安全网络攻击
西安规模较小的软件开发公司
杭州网络安全人才收入
大型数据库技术教材
专业网络技术工作报告
河南佳信网络技术有限公司
软件开发设计的知识
文件服务器安全防护
手游网单修改服务器
网络安全宣传总结卫生院
戴尔服务器哪个好用
境外3安全验证服务器
用户可不可以直接接触数据库
云闪付绑卡服务器请求超时
迅达服务器插上去看不清
腾讯云实例数据库
数据库删除数据找回
ccdd数据库怎么拿数据
哪种语言操作数据库比较好
如何恢复电脑微信旧数据库
数据库通用考试客户端下载
j2ee服务器注册的
图书馆外文电子图书数据库
目前比较前沿的数据库技术
游戏服务器管理员工资
日历数据库
数据库索引创建b树索引
德服网络安全教育题库
保山专注java软件开发