最开始接触深度学习,使用theano框架,使用感觉,偏底层、难调试。
theano的工作流程大致可以概括如下(先定义一个大的图片,编辑好图片的小部件,再把训练数据集放到图片中去自动地训练。),第一步初始化各变量及计算图中需要的其他组件,第二步利用初始化后的变量构建计算图(即使用function将各组件串起来,形成一张计算图),第三步喂数据,使其开始计算或训练。更正式描述如下,导入模块并创建数据(包括预处理)、建立模型、激活模型和训练模型。
近期,tensorflow如日中天,以压倒性优势侵占深度学习领域,遂决心转战tensorflow,通过几天的接触,感觉与theano差距不大,但tensorflow开源了更多的样例、基础模型,很多人乘势而上,在demo上进行改进、实验,极大缩短了开发周期。
tensorflow在初始化变量时是直接赋值的,运行计算需要开启会话,通过会话实现计算;而theano却是通过theano.function将初始化值传入,实现计算。其实,tensorflow中的session与theano.function一致。
tensorflow编程总结:
1)导入模块;2)设置超参数;3)导入数据(使用“print查看数据形式”);4)设置占位符(图输入);5)创建参数,构造计算图(预测结果的计算流程);6)设定损失函数,选择优化算法;7)创建会话;8)初始化参数;9)喂数据,开始训练;10)可视化相关结果等。