• tensorflow-learning-where-what-how


    这么优秀的外国小哥哥... https://github.com/machinelearningmindset/TensorFlow-Course
    tensorboard使用:https://github.com/secsilm/understanding-tensorboard

    tensorflow-morvan

    • placeholder:session外定义,session里面传入具体变量
    • 在session外定义完整的结构,包括具体的操作、loss、减小loss的优化器optimizer,还有train(optimizer),然后再session里头run(train),变量要先初始化。
    • matplotlib可视化
    • 加速方法:
      • SGD:把这些数据拆分成小批小批的, 然后再分批不断放入 NN 中计算,走好多曲曲折折的路
      • momentum:放到斜坡上,一下子滑好远 m = b1 * m - Learning rate * dx; W += m
      • AdaGrad: 加大阻力,让他拐弯的时候偏离路线不能太远 v += dx^2; W += -Learning rate * dx/ √v
      • RMSProp:不完全结合上面两种方法
      • Adam: 结合上面两种方法
    • tensorboard:想在图里表示哪个变量就with tf.name_scope("name_val")这个东西的上边,最后在session里写tf.summary,FileWriter("logs/",sess.graph)
    • 交叉熵用来衡量预测值和真实值的相似程度,如果完全相同,它们的交叉熵等于零。
    • 正则化:防止过拟合,让W变大的同时cost = 预测值-真实值得平方也变大,相当于一种惩罚机制。防止过拟合还可以用dropout,每次训练在这一层随机忽略掉一些神经元和神经联结。
    • saver&loader:先定义with save,之后再使用
    • cnn: tf.nn.conv2d函数是tensoflow里面的二维的卷积函数,x是图片的所有参数,W是此卷积层的权重,然后定义步长strides=[1,1,1,1]值,strides[0]和strides[3]的两个1是默认值,中间两个1代表padding时在x方向运动一步,y方向运动一步,padding采用的方式是SAME。
    • call():在python中,函数和类都可以变成可调用对象,讲解例子。函数的调用是def 之后在外部function(input),类的调用是先定义class类 class a(),之后在外部声明初始化这个类function = a(),最后在声明之后便都可以调用类内的__call__部分print(function(input))。由此可以看出,只看最后一行的话,类和函数的外部调用是一样的。

    tensorboard

    with tf.name_scope('layer_name'):
        with tf.variable_name('w'):
            w = tf.takeplace_balabala
    
    • 想得到直方图啥的,就比方说loss和accuracy,就在model.py文件里定义loss和accuracy变量那先给变量起个名,然后在下边加句add_summary啥玩意就行了
    self.accuracy = tf.reduce_mean(tf.cast(self.correct_pred, tf.float32),name = 'accuracy')
    tf.summary.scalar('accuracy',self.accuracy) # 这里可以summary.histgram总之想要什么图,就加什么图
    
  • 相关阅读:
    GSON -JSON 反序列化-多节点名称支持
    Jedis 分片原理
    闭锁-CountDownLatch
    XML序列化及反序列化
    用GIT操作SVN
    报表worker-CPU使用率过高原因排查
    二.PlantUML 之活动图
    一.PlantUML 与 IDEA 集成
    ArrayList
    VI常用命令
  • 原文地址:https://www.cnblogs.com/forPrometheus-jun/p/10517651.html
Copyright © 2020-2023  润新知