莫烦TensorFlow教程学习(5)——建造神经网络

  • 主要内容
    搭建第一个简单的神经网络(已具备相应的神经网络基础知识),放上视频地址莫烦TensorFlow教程学习(5)——建造神经网络

  • 遇到的问题
    输入输出的大小问题,莫烦建造的是输入层为1,隐藏层10个,输出层一个的简单神经网络,其中代码中有这样一句话
    x_data = np.linspace(-1,1,300,dtype=np.float32)[:,np.newaxis]
    这是准备的x数据,一直不知道这个300是什么,后来发现300是对应的样本数量,这句话首先生成一个有300个元素的一维数组,再通过[:,np.newaxis]转换成1列300行的矩阵形式(列向量),输入层神经元个数=列数=每行元素个数=1,样本数量=列数=300。每次循环样本数量都是300个。关于[:,np.newaxis]的用法感谢博客:,np.newaxis用法介绍。可能剩下的疑惑就是placeholder了。但是关于placeholder多见几次代码可能就会更有感觉。

  • 代码及注释

#莫烦TensorFlow视频教程

#def add_layer 添加层  2018.10.10,2018.10.12
import tensorflow as tf
import numpy as np

#定义一个添加层函数 in_size:输入大小 out_size:输出大小 激励函数默认为none(即线性)
# Wx_plus_b(w*x+b)
def add_layer(inputs, in_size, out_size, activation_function=None):
   #对于权重weights:in_size是行数,outsize是列数
   Weights = tf.Variable(tf.random_normal([in_size,out_size]))
   #对于偏置项biases:1是行数,outsize是列数,初始值为0.1
   biases = tf.Variable(tf.zeros([1,out_size])+0.1)
   #注意:multiply不是矩阵乘法,只是单纯的元素相乘,mutmul是矩阵乘法
   Wx_plus_b = tf.matmul(inputs,Weights)+biases 
   if activation_function is None:
       outputs = Wx_plus_b
   else:
       outputs = activation_function(Wx_plus_b)
   return outputs

# 创建数据
# x在-1到1,300个,newaxis解释很清楚(https://blog.csdn.net/molu_chase/article/details/78619731)
# 将一个有300个元素的一维数组转换成1列300行的矩阵形式(列向量)
# 样本大小300个
x_data = np.linspace(-1,1,300,dtype=np.float32)[:,np.newaxis]
# 噪点方差0.05,和x_data一样的格式
noise = np.random.normal(0,0.05,x_data.shape).astype(np.float32)
# y=x^2-0.5+噪点(更像真实值)
y_data = np.square(x_data)-0.5+noise

#利用占位符定义我们所需的神经网络的输入
#None代表无论输入有多少都可以,因为输出只有一个特征,所以这里是1
xs = tf.placeholder(tf.float32,[None,1])
ys = tf.placeholder(tf.float32,[None,1])

#建网络 输入层:1 隐藏层:10 输出层:1
l1 = add_layer(xs,1,10,activation_function=tf.nn.relu)
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 来减小loss
train_step = tf.train.GradientDescentOptimizer(0.1).minimize(loss)

#初始化
#init = tf.initialize_all_variables()已经被替换
init = tf.global_variables_initializer() 
sess = tf.Session()
sess.run(init)

#执行1000次,每50次输出loss
for i in range(1000):
   #当运算要用到placeholder时,就需要feed_dict这个字典来指定输入
   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}))

  • 运行结果
    运行结果
    这里有人会有疑惑说为什么每一个结果不一样,因为你扔进去的数据都不同啊,加的噪声是随机的哈~数据变了训练出来的结果就会有差异。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
莫烦Python教程是一个非常受欢迎的Python学习资源,它提供了丰富的视频教程和示例代码,帮助初学者快速入门Python编程。要开始学习莫烦的Python教程,您需要按照以下步骤进行安装和配置: 1. 首先,确保您的计算机上已安装Python 3.5或更高版本。如果您尚未安装Python,请根据您的操作系统执行以下步骤: - 对于Ubuntu/Linux 64位系统,请使用以下命令安装Python和pip: ``` $ sudo apt-get install python3 python3-pip ``` - 对于MacOS X系统,请使用以下命令安装Python和pip: ``` $ sudo easy_install --upgrade pip $ sudo easy_install --upgrade six ``` 2. 安装Anaconda和PyCharm是学习Python的另一种选择。Anaconda是一个Python发行版,它集成了许多科学计算和数据分析的包,可以方便地进行Python开发。PyCharm是一款强大的Python集成开发环境(IDE),提供了丰富的功能和工具,使编程更加高效。您可以按照相关文档和指南安装和配置Anaconda和PyCharm。 3. 一旦您完成了Python的安装和配置,您可以访问莫烦Python教程的官方网站(https://mofanpy***的视频教程。 4. 莫烦Python教程涵盖了许多不同的主题,包括Python基础知识、机器学习、深度学习、数据分析等。您可以根据自己的需求选择相应的教程进行学习。 总结起来,要开始学习莫烦的Python教程,您需要安装Python和pip,可以选择安装Anaconda和PyCharm进行更方便的开发环境,然后访问莫烦Python***

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值