tensorflow学习

1 tensorflow可视化
1.1 PlayGround学习
用于教学目的的简单神经网络的在线演示,可以在浏览器中训练神经网络
在这里插入图片描述
通过训练可以看到,两个特征输入,两层隐藏层,最后可以较好地把两类数据正确分类
1.2 tf学习

tf.matmul(a, b, transpose_a=False, transpose_b=False, adjoint_a=False, adjoint_b=False, a_is_sparse=False, b_is_sparse=False, name=None) 
参数: 
a: 一个类型为 float16, float32, float64, int32, complex64, complex128 且张量秩 > 1 的张量。 
b: 一个类型跟张量a相同的张量。 
transpose_a: 如果为真, a则在进行乘法计算前进行转置。 
transpose_b: 如果为真, b则在进行乘法计算前进行转置。 
adjoint_a: 如果为真, a则在进行乘法计算前进行共轭和转置。 
adjoint_b: 如果为真, b则在进行乘法计算前进行共轭和转置。 
a_is_sparse: 如果为真, a会被处理为稀疏矩阵。 
b_is_sparse: 如果为真, b会被处理为稀疏矩阵。 
name: 操作的名字(可选参数) 
返回值: 一个跟张量a和张量b类型一样的张量且最内部矩阵是a和b中的相应矩阵的乘积。 
tf.reduce_mean 函数用于计算张量tensor沿着指定的数轴(tensor的某一维度)上的的平均值,主要用作降维或者计算tensor(图像)的平均值。
reduce_mean(input_tensor,
                axis=None,
                keep_dims=False,
                name=None,
                reduction_indices=None)
第一个参数input_tensor: 输入的待降维的tensor;
第二个参数axis: 指定的轴,如果不指定,则计算所有元素的均值;
第三个参数keep_dims:是否降维度,设置为True,输出的结果保持输入tensor的形状,设置为False,输出结果会降低维度;
第四个参数name: 操作的名称;
第五个参数 reduction_indices:在以前版本中用来指定轴

构建一个简单的神经网络

import tensorflow as tf
import numpy as np

#构造数据
#取-1到1的等差数列且将一维数组转为二维数组
x_data = np.linspace(-1,1,300)[:,np.newaxis]
#加入均值为0,方差为0.05的噪声
noise= np.random.normal(0,0.05,x_data.shape)
#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])

#构建网络模型
def add_layer(inputs,in_size,out_size,activation_function=None):
    #构建权重:in_sizexout_size大小的矩阵
    weights = tf.Variable(tf.random_normal([in_size,out_size]))
    print('weight_shape',weights.shape)
    #构建偏置:1xout_size大小的矩阵
    bias = tf.Variable(tf.random_normal([1,out_size])+0.1)
    print('bias_shape', bias.shape)
    #矩阵相乘
    Wx_plus_b = tf.matmul(inputs,weights)+bias
    print('Wx_plus_b', bias.shape)
    if activation_function is None:
        outputs = Wx_plus_b
    else:
        outputs = activation_function(Wx_plus_b)
    return outputs
#构建隐藏层,输入层一个神经元,隐藏层20个神经元
h1 = add_layer(xs,1,20,activation_function=tf.nn.relu)
#构建输出层,输入层20个神经元,输出层是1个神经元
prediction = add_layer(h1,20,1,activation_function=None)

#构建损失函数
loss = tf.reduce_mean(tf.reduce_sum(tf.square(ys-prediction),reduction_indices=[1]))
train_step = tf.train.GradientDescentOptimizer(0.1).minimize(loss)

#训练模型
init = tf.global_variables_initializer()#初始化所有变量
sess = tf.Session()
sess.run(init)
#训练1000次
for i in range(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}))

1.3 tensorboard
在生成的events文件的上一级目录也就是logs那级打开shell
在这里插入图片描述

D:\opencvfile\yolo_tensorflow-master> tensorboard --logdir=logs

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值