博客
关于我
我的Tensorflow入门教程 【00-04】
阅读量:327 次
发布时间:2019-03-04

本文共 2242 字,大约阅读时间需要 7 分钟。

TensorFlow基础入门:从Hello TF到复杂数学运算

作为一名开发者,我在Windows 10环境下配置了一个新的机器学习环境,选择了CUDA 8.0、CUDNN、Python 3.5.2以及Pycharm作为开发工具。虽然Ubuntu也是一个不错的选择,但Windows的开发体验对我来说更为舒适。此外,我还充订了256元的Gitchat会员,计划在这一年中深入学习AI相关知识。

TensorFlow基础入门

1. 认识TensorFlow:输出Hello TF

TensorFlow是一个强大的机器学习框架,它通过图式编程的方式实现了高效的数值计算。基本使用流程包括定义图(Graph)、执行图(Session)以及获取结果。以下是输出“Hello TensorFlow”的简单示例:

import tensorflow as tfnode1 = tf.constant("hello")node2 = tf.constant(200)sess = tf.Session()print(sess.run([node2, node1]))

运行后会输出:

[200 b'hello']

2. 矩阵加法:实现矩阵运算

TensorFlow支持丰富的数学运算,允许我们轻松实现复杂的计算。以下是两个矩阵的加法示例:

a = tf.constant([1.0, 2.0], dtype=tf.float32, name="a")b = tf.constant([2.0, 3.0], dtype=tf.float32, name="b")result = a + bprint(tf.Session().run(result))

输出结果为:

[3. 5.]

3. 扩展数学运算:实现复杂计算

除了简单的加法,TensorFlow还支持更复杂的运算。以下是一个包含多个步骤的计算示例:

const = tf.constant(2.0, name="const")a = tf.Variable(2.0, name="a")  # a = 2b = tf.Variable(1.0, name="b")  # b = 1c = tf.add(a, b, name="c")    # c = a + bd = tf.multiply(a, c, name="d")  # d = a * ce = tf.add(d, const, name="e")  # e = d + 2init_op = tf.global_variables_initializer()with tf.Session() as sess:    sess.run(init_op)    a_out = sess.run(e)    print("Variable a is {}".format(a_out))

输出结果为:

Variable a is 8.0

4. 占位符输入:灵活处理输入数据

在实际应用中,我们需要动态输入数据。TensorFlow的占位符(Placeholder)功能非常有用。以下是一个使用占位符的示例:

a = tf.Variable(4.4, dtype=tf.float32)  # a = 4.4x = tf.placeholder(tf.float32, shape=(1, 2), name="input")  # 输入占位符y = tf.multiply(x, a, name="mul")sess = tf.Session()init_op = tf.global_variables_initializer()print(sess.run(y, feed_dict={x: [[1.0, 2.0]]}))

输出结果为:

[[4.4 8.8]]

5. 占位符输入数组:处理多维数据

为了处理多维数据,占位符的形状参数非常有用。以下是一个处理多维数组的示例:

b = tf.placeholder(tf.float32, [None, 1], name="b")  # [任意行数, 1列]a = tf.Variable(2.0, name="a")  # a = 2c = tf.add(a, b, name="c")d = tf.multiply(a, c, name="d")e = tf.add(d, const, name="e")  # const = 2init_op = tf.global_variables_initializer()with tf.Session() as sess:    a_out = sess.run(e, feed_dict={b: np.arange(0, 12)[:, np.newaxis]})    print("Variable a is {}".format(a_out))

输出结果为:

[[ 6. ] [ 8. ] [10. ] [12. ] [14. ] [16. ] [18. ] [20. ] [22. ] [24. ] [26. ] [28. ]]

总结

通过以上示例可以看出,TensorFlow提供了强大的工具支持,可以轻松实现复杂的数学运算和数据处理。在实际应用中,合理使用占位符和变量,可以实现对输入数据的灵活处理。TensorFlow的图式编程方式也使得代码更加易于调试和优化。

转载地址:http://fhyh.baihongyu.com/

你可能感兴趣的文章
NIFI1.21.0_Mysql到Mysql增量CDC同步中_补充_更新时如果目标表中不存在记录就改为插入数据_Postgresql_Hbase也适用---大数据之Nifi工作笔记0059
查看>>
NIFI1.21.0_NIFI和hadoop蹦了_200G集群磁盘又满了_Jps看不到进程了_Unable to write in /tmp. Aborting----大数据之Nifi工作笔记0052
查看>>
NIFI1.21.0_Postgresql和Mysql同时指定库_指定多表_全量同步到Mysql数据库以及Hbase数据库中---大数据之Nifi工作笔记0060
查看>>
NIFI1.21.0最新版本安装_连接phoenix_单机版_Https登录_什么都没改换了最新版本的NIFI可以连接了_气人_实现插入数据到Hbase_实际操作---大数据之Nifi工作笔记0050
查看>>
NIFI1.21.0最新版本安装_配置使用HTTP登录_默认是用HTTPS登录的_Https登录需要输入用户名密码_HTTP不需要---大数据之Nifi工作笔记0051
查看>>
NIFI1.21.0通过Postgresql11的CDC逻辑复制槽实现_指定表多表增量同步_增删改数据分发及删除数据实时同步_通过分页解决变更记录过大问题_02----大数据之Nifi工作笔记0054
查看>>
NIFI1.21.0通过Postgresql11的CDC逻辑复制槽实现_指定表多表增量同步_增加修改实时同步_使用JsonPath及自定义Python脚本_03---大数据之Nifi工作笔记0055
查看>>
NIFI1.21.0通过Postgresql11的CDC逻辑复制槽实现_指定表多表增量同步_插入修改删除增量数据实时同步_通过分页解决变更记录过大问题_01----大数据之Nifi工作笔记0053
查看>>
NIFI1.21.0通过Postgresql11的CDC逻辑复制槽实现_指定表或全表增量同步_实现指定整库同步_或指定数据表同步配置_04---大数据之Nifi工作笔记0056
查看>>
NIFI1.23.2_最新版_性能优化通用_技巧积累_使用NIFI表达式过滤表_随时更新---大数据之Nifi工作笔记0063
查看>>
NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_根据binlog实现update数据实时同步_实际操作05---大数据之Nifi工作笔记0044
查看>>
NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_根据binlog实现数据实时delete同步_实际操作04---大数据之Nifi工作笔记0043
查看>>
NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_配置binlog_使用处理器抓取binlog数据_实际操作01---大数据之Nifi工作笔记0040
查看>>
NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_配置数据路由_实现数据插入数据到目标数据库_实际操作03---大数据之Nifi工作笔记0042
查看>>
NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_配置数据路由_生成插入Sql语句_实际操作02---大数据之Nifi工作笔记0041
查看>>
NIFI从MySql中离线读取数据再导入到MySql中_03_来吧用NIFI实现_数据分页获取功能---大数据之Nifi工作笔记0038
查看>>
NIFI从MySql中离线读取数据再导入到MySql中_不带分页处理_01_QueryDatabaseTable获取数据_原0036---大数据之Nifi工作笔记0064
查看>>
NIFI从MySql中离线读取数据再导入到MySql中_无分页功能_02_转换数据_分割数据_提取JSON数据_替换拼接SQL_添加分页---大数据之Nifi工作笔记0037
查看>>
NIFI从Oracle11G同步数据到Mysql_亲测可用_解决数据重复_数据跟源表不一致的问题---大数据之Nifi工作笔记0065
查看>>
NIFI从PostGresql中离线读取数据再导入到MySql中_带有数据分页获取功能_不带分页不能用_NIFI资料太少了---大数据之Nifi工作笔记0039
查看>>