Tensowflow深度学习流程

Tensowflow深度学习流程基本按照这8个步骤来执行的:


深度学习流程

一、执行图的构建
1.数据的特征工程
2.模型构建
二、执行图的执行
1.数据加载
2.数据清洗
3.数据划分、提取
4.模型训练
5.模型效果评估
6.模型持久化
三、TF的常识
1.变量的初始化
2.常量的定义、参数的给定、推荐默认的类型、系统自动命名、不同图中的节点不能合并操作

def constant(value, dtype=None, shape=None, name="Const", verify_shape=False):
      功能:定义一个值不允许修改的Tensor常量对象
      参数:
        value: 初始值,可以是任意的Python基本数据类型(数值型、布尔类型、字符串类型、数组、元祖)以及NumPy数组类型
        dtype: 明确给定常量对象的数据类型,如果不给定的话,从value中获取数据类型
        shape: 给定常量对象的形状,默认不给定的话,使用value对应的形状

四、TF会话

当执行图构建完成后,才能给启动图,进入到执行阶段:

  • 启动图的第一步就是创建一个Session对象,
  • 如果无任何参数的情况下,会话构造器将启动默认图。
  • 执行会话(session),获取结果
def create_graph_session():
    a = tf.constant(value=5.0)
    b = tf.constant(value=8.0)

    # 2. 两个常数tensor对象分别加一个随机数
    v1 = tf.add(x=a, y=np.random.random_sample(), name='v1')
    v2 = tf.add(x=b, y=tf.random_normal(shape=[], dtype=tf.float32))


    # def __init__(self, target='', graph=None, config=None)
    #     target: 一个字符串,先暂时不考虑
    #     graph: 指定这个会话可以运行哪个图的内容,如果不给定的时候,默认就是tf.get_default_graph()
    #     config: session相关配置信息,可以不给
    sess = tf.Session()


    """
    def run(self, fetches, feed_dict=None, options=None, run_metadata=None):
    tf.Session().run 的参数:
         fetches : 给定具体获取哪些tensor的值,可以是1个 也可以是多个,给定多个tensor值,只运行一次;
         feed_dict : 如果定义的执行图需要传入数据,那么通过这个参数给定。
    """
    print(sess.run(fetches=a))
    # fetches 参数可以写,也可以不写
    print("当前的默认会话:{}".format(tf.get_default_session()))
    # print(sess.run(a))
    # """
    # 如何一次性获取运算结果呢?想要获取的结果 组合成一个list,作为fetches.
    # """
    print(sess.run([a, b, v1, v2]))
    # print(v1.eval())

    # 关闭会话
    sess.close()

总结:实际写训练代码的时候一般结构为:

# 构建模型图
# 构建会话
# with tf.Graph().as_default():
#     # 一、 基于业务知识构建执行图对象
#      pass
#
#     # # 二、运行
#     with tf.Session() as sess:
#     #     # 0. 加载数据
#     #
#     #     # 1. 图执行
#     #
#     #     # 2. 图效果查看
#     #
#     #     # 3. 持久化
#         pass
#     # pass

config配置

    1. 构建会话
#介绍session中的参数config=tf.ConfigProto()
        with tf.Session(config=tf.ConfigProto(log_device_placement=True,
                                 allow_soft_placement=True,
                                 gpu_options=tf.GPUOptions(allow_growth=True,
                                 per_process_gpu_memory_fraction=0.5))) as sess:
            a_, b_, v1_, v2_ = sess.run([a, b, v1, v2])
            print(a_, b_, v1_, v2_)

gpu_options GPU相关参数
log_device_placement bool值 是否打印设备位置得日志文件
allow_soft_placement bool==True时,是否允许动态使用CPU和GPU,默认为False;当我们的tf的版本为GPU的时候,
建议该参数设置为True,因为TensorFlow中的部分op只能在CPU上运行
allow_growth bool值==True时,不预先分配使用整个gpu内存计算,而是从小开始按需要增长。
per_process_gpu_memory_fraction 值介于(0 ,1.0) 限制使用该gpu设备内存的百分比。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容