tensorflow入门之训练简单的神经网络方法-创新互联
这几天开始学tensorflow,先来做一下学习记录
一.神经网络解决问题步骤:
1.提取问题中实体的特征向量作为神经网络的输入。也就是说要对数据集进行特征工程,然后知道每个样本的特征维度,以此来定义输入神经元的个数。
2.定义神经网络的结构,并定义如何从神经网络的输入得到输出。也就是说定义输入层,隐藏层以及输出层。
3.通过训练数据来调整神经网络中的参数取值,这是训练神经网络的过程。一般来说要定义模型的损失函数,以及参数优化的方法,如交叉熵损失函数和梯度下降法调优等。
4.利用训练好的模型预测未知的数据。也就是评估模型的好坏。
二.训练简单的向前传播神经网络
一下训练的神经模型是最简单的一类,而且是线性的(也就是说没有用激活函数去线性话),没有反向传播的过程,只是简单的说明神经网络工作的流程。
import tensorflow as tf #定义隐藏层参数,每个w变量是一个tensor(可以当成是n*m的数组,n表示上一层结点个数,m表示本层结点个数)表示上一层与本层的连接权重,这里先随机定义权重 w1=tf.Variable(tf.random_normal([2,3],stddev=1)) w2=tf.Variable(tf.random_normal([3,1],stddev=1)) #定义存放输入数据的地方,也就是x向量,这里shape为前一个传入训练的样本个数,后面出入每个样本的维度大小 x=tf.placeholder(tf.float32,shape=(None,2),name="input") #矩阵乘法 a=tf.matmul(x,w1) y=tf.matmul(a,w2) with tf.Session() as sess: #新版本好像不能用这个函数初始化所有变量了 init_op=tf.initialize_all_variables() sess.run(init_op) #feed_dict用于向y中的x传入参数,这里传入3个,则y输出为一个3*1的tensor print(sess.run(y,feed_dict={x:[[0.7,0.9],[1.0,1.5],[2.1,2.3]]}))
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
分享名称:tensorflow入门之训练简单的神经网络方法-创新互联
分享路径:http://pwwzsj.com/article/cedihp.html