Python学习记录-tensorflow ...

numpy

  1. np.identity
    返回一个单位矩阵
  2. np.concatenate
    https://img-blog.csdn.net/20180414163140310?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0tvbF9tb2dvcm92/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70
    image_1cptvo746g3farv1glq14v31kos9.png-36.3kB
    image_1cptvo746g3farv1glq14v31kos9.png-36.3kB

    axis = i, 则在第i维上发生变化;
  3. np.transpose
    转置

python

  1. callable
    callable() 函数用于检查一个对象是否是可调用的。如果返回True,object仍然可能调用失败;但如果返回False,调用对象ojbect绝对不会成功。
    对于函数, 方法, lambda 函式, 类, 以及实现了 __call__ 方法的类实例, 它都返回 True。

tensorflow

  1. nn.conv2d

    tf.nn.conv2d(input_batch, kernel,\
    strides=[image_batch_size_stride, \
            image_height_stride, \
            image_width_stride,\
            image_channels_stride], padding='SAME')
    
  2. tf.variable_scope
    tf.variable_scope, 用于定义创建变量(层)的操作的上下文管理器;

    with tf.variable_scope("foo"):
        with tf.variable_scope("bar"):
            v = tf.get_variable("v", [1])
            assert v.name == "foo/bar/v:0"
    
  3. tf.summary

    tf.summary.histogram(tags, values, collections=None, name=None)
    # 用来显示直方图信息,一般用来显示训练过程中变量的分布情况
    
    tf.summary.scalar(tags, values, collections=None, name=None)
    # 用来显示标题信息,一般在画loss,accuary时会用到
    
  4. tf.cast
    将x的数据格式转化成dtype.例如,原来x的数据格式是bool,
    那么将其转化成float以后,就能够将其转化成0和1的序列。反之也可以

    a = tf.Variable([1,0,0,1,1])
    b = tf.cast(a,dtype=tf.bool)
    sess = tf.Session()
    sess.run(tf.initialize_all_variables())
    print(sess.run(b))
    #[ True False False  True  True]
    
  5. tf.ConfigProto

    # tf.ConfigProto()的参数
    log_device_placement=True : 是否打印设备分配日志
    allow_soft_placement=True : 如果你指定的设备不存在,允许TF自动分配设备   
    tf.ConfigProto(log_device_placement=True,allow_soft_placement=True)
    
  6. tf.truncated_normal_initalizer
    这是神经网络权重和过滤器的推荐初始值。

    tf.truncated_normal_initializer 
    从截断的正态分布中输出随机值。
    生成的值服从具有指定平均值和标准偏差的正态分布,
    如果生成的值大于平均值2个标准偏差的值则丢弃重新选择。
    
  7. sess.run

  8. tf.train.Coordinator()
    TensorFlow提供了两个类来实现对Session中多线程的管理:tf.Coordinator和 tf.QueueRunner,这两个类往往一起使用。
    Coordinator类用来管理在Session中的多个线程,可以用来同时停止多个工作线程并且向那个在等待所有工作线程终止的程序报告异常,该线程捕获到这个异常之后就会终止所有线程。使用 tf.train.Coordinator()来创建一个线程管理器(协调器)对象。

    # -*- coding:utf-8 -*-
    import tensorflow as tf
    import numpy as np
     
    # 样本个数
    sample_num=5
    # 设置迭代次数
    epoch_num = 2
    # 设置一个批次中包含样本个数
    batch_size = 3
    # 计算每一轮epoch中含有的batch个数
    batch_total = int(sample_num/batch_size)+1
     
    # 生成4个数据和标签
    def generate_data(sample_num=sample_num):
        labels = np.asarray(range(0, sample_num))
        images = np.random.random([sample_num, 224, 224, 3])
        print('image size {},label size :{}'.format(images.shape, labels.shape))
        return images,labels
     
    def get_batch_data(batch_size=batch_size):
        images, label = generate_data()
        # 数据类型转换为tf.float32
        images = tf.cast(images, tf.float32)
        label = tf.cast(label, tf.int32)
     
        #从tensor列表中按顺序或随机抽取一个tensor准备放入文件名称队列
        input_queue = tf.train.slice_input_producer([images, label], num_epochs=epoch_num, shuffle=False)
     
        #从文件名称队列中读取文件准备放入文件队列
        image_batch, label_batch = tf.train.batch(input_queue, batch_size=batch_size, num_threads=2, capacity=64, allow_smaller_final_batch=False)
        return image_batch, label_batch
     
    image_batch, label_batch = get_batch_data(batch_size=batch_size)
     
     
    with tf.Session() as sess:
     
        # 先执行初始化工作
        sess.run(tf.global_variables_initializer())
        sess.run(tf.local_variables_initializer())
     
        # 开启一个协调器
        coord = tf.train.Coordinator()
        # 使用start_queue_runners 启动队列填充
        threads = tf.train.start_queue_runners(sess, coord)
     
        try:
            while not coord.should_stop():
                print '************'
                # 获取每一个batch中batch_size个样本和标签
                image_batch_v, label_batch_v = sess.run([image_batch, label_batch])
                print(image_batch_v.shape, label_batch_v)
        except tf.errors.OutOfRangeError:  #如果读取到文件队列末尾会抛出此异常
            print("done! now lets kill all the threads……")
        finally:
            # 协调器coord发出所有线程终止信号
            coord.request_stop()
            print('all threads are asked to stop!')
        coord.join(threads) #把开启的线程加入主线程,等待threads结束
        print('all threads are stopped!')
    
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,793评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,567评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,342评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,825评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,814评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,680评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,033评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,687评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,175评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,668评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,775评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,419评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,020评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,206评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,092评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,510评论 2 343