tensorflow常用函数API介绍

TensorFlow常用函数API介绍

TensorFlow是目前深度学习领域最为常用的开源框架之一。在使用TensorFlow时,熟练掌握常用的函数API是非常重要的。本文就常用的一些函数API进行介绍,并提供相应的示例。

1. tf.constant

tf.constant(value, dtype=None, shape=None, name='Const')

tf.constant是TensorFlow中最基本的常量操作之一。它用于创建一个常量张量。其中,value表示常量的值;dtype表示常量的类型,如int32、float32等;shape表示常量的形状,如(1,2)、(2,2,2)等。

import tensorflow as tf

a = tf.constant(1,name='a')
b = tf.constant(2,name='b')
c = a + b

with tf.Session() as sess:
    print(sess.run(c))

2. tf.Variable

tf.Variable(initial_value=None, trainable=True, collections=None, validate_shape=True, name=None)

tf.Variable用于定义一个可训练的变量。其中,initial_value表示变量的初始值;trainable表示该变量是否可以被训练,可选项为True或False;collections可以为变量指定一个或多个变量集合;validate_shape表示是否对变量的形状进行验证;name表示变量名。

import tensorflow as tf

W = tf.Variable(tf.zeros([2,2]), name='weights')
b = tf.Variable(tf.zeros([2]), name='biases')
x = tf.placeholder(tf.float32, [None, 2],name='input')
y_ = tf.placeholder(tf.float32, [None, 2],name='outcome')

y = tf.matmul(x, W) + b
loss = tf.reduce_mean(tf.square(y - y_))

train_step = tf.train.GradientDescentOptimizer(0.1).minimize(loss)

init = tf.initialize_all_variables()

with tf.Session() as sess:
    sess.run(init)

    for i in range(100):
        sess.run(train_step, feed_dict={x: input_data, y_:outcome_data})

3. tf.placeholder

tf.placeholder(dtype, shape=None, name=None)

tf.placeholder用于定义占位符,可以看作模型在运行时需要输入的数据。其中,dtype表示占位符的类型;shape表示占位符的形状;name表示占位符的名字。

import tensorflow as tf

x = tf.placeholder(tf.float32, [None, 2],name='input')
y_ = tf.placeholder(tf.float32, [None, 1],name='outcome')

W = tf.Variable(tf.zeros([2,1]))
b = tf.Variable(tf.zeros([1]))

y = tf.matmul(x, W) + b
loss = tf.reduce_mean(tf.square(y - y_))
train_step = tf.train.GradientDescentOptimizer(0.01).minimize(loss)

data = [[0,0],[0,1],[1,0],[1,1]]
outcome = [[0],[1],[1],[0]]

with tf.Session() as sess:
    sess.run(tf.global_variables_initializer())

    for i in range(500):
        sess.run(train_step, feed_dict={x: data, y_:outcome})
        if i%50 == 0:
            print('step:%d,loss:%f' % (i,sess.run(loss,feed_dict={x: data, y_:outcome})))

4. tf.nn.relu

tf.nn.relu(features, name=None)

tf.nn.relu用于定义ReLU激活函数,即修正线性单元激活函数。其中,features为张量。

import tensorflow as tf
import numpy as np

x = tf.placeholder(tf.float32, shape=(None, 5), name='x')
W = tf.Variable(tf.random_uniform([5, 5], -1, 1), name='W')
b = tf.Variable(tf.zeros([5]), name='b')
output = tf.nn.relu(tf.matmul(x, W) + b)

with tf.Session() as sess:
    init = tf.global_variables_initializer()
    sess.run(init)

    input_data = np.random.rand(10, 5)
    output_data = sess.run(output, feed_dict={x: input_data})
    print(output_data)

5. tf.train.AdamOptimizer

tf.train.AdamOptimizer(learning_rate=0.001, beta1=0.9, beta2=0.999, epsilon=1e-08, use_locking=False)

tf.train.AdamOptimizer使用Adam算法进行优化。其中,learning_rate为学习率;beta1和beta2分别表示一阶矩估计和二阶矩估计的指数衰减率;epsilon为数值稳定性常数;use_locking表示是否使用锁进行操作。

import tensorflow as tf
import numpy as np

x_data = np.linspace(-1,1,300)[:,np.newaxis]
noise = np.random.normal(0,0.05,x_data.shape)
y_data = np.square(x_data) - 0.5 + noise

x = tf.placeholder(tf.float32,[None,1],name='x')
y = tf.placeholder(tf.float32,[None,1],name='y')

W1 = tf.Variable(tf.random_normal([1,10],stddev=1.0))
b1 = tf.Variable(tf.zeros([1,10]))
W2 = tf.Variable(tf.random_normal([10,1],stddev=1.0))
b2 = tf.Variable(tf.zeros([1,1]))

hidden_layer = tf.nn.relu(tf.matmul(x, W1) + b1)
prediction = tf.matmul(hidden_layer, W2) + b2

loss = tf.reduce_mean(tf.square(y-prediction))
train_step = tf.train.AdamOptimizer(0.1).minimize(loss)

with tf.Session() as sess:
    sess.run(tf.global_variables_initializer())
    for i in range(1000):
        sess.run(train_step,feed_dict={x:x_data,y:y_data})
        if i%100 == 0:
            print('step:%d,loss:%f'% (i,sess.run(loss,feed_dict={x:x_data,y:y_data})))

以上就是一些常用的TensorFlow函数API的介绍,并提供了相关的示例代码。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:tensorflow常用函数API介绍 - Python技术站

(0)
上一篇 2023年5月15日
下一篇 2023年5月15日

相关文章

  • Deep Learning.ai学习笔记_第四门课_卷积神经网络

    目录 第一周 卷积神经网络基础 第二周 深度卷积网络:实例探究 第三周 目标检测 第四周 特殊应用:人脸识别和神经风格转换   垂直边缘检测器,通过卷积计算,可以把多维矩阵进行降维。如下图:   卷积运算提供了一个方便的方法来发现图像中的垂直边缘。例如下图:   对于3×3的过滤器,使用下面的数字组合鲁棒性比较高,这样的过滤器也称为Sobel过滤器。   还…

    2023年4月7日
    00
  • Tensorflow 如何从checkpoint文件中加载变量名和变量值

    在Tensorflow中,保存和加载变量以checkpoint文件的方式进行。从checkpoint文件中加载变量名和变量值的方法在使用Tensorflow训练模型,在后续的模型迁移、fine-tune等场景中都具有很高的实用性。本文将就如何从checkpoint文件中加载变量名和变量值进行详细的讲解,并提供两条示例说明。 加载变量名和变量值的方法 1. 通…

    卷积神经网络 2023年5月15日
    00
  • 卷积神经网络技巧总结

    从变形卷积核、可分离卷积?卷积神经网络中十大拍案叫绝的操作。中梳理提取补充. 前提名词 feature map: 特征图, 卷积核的输入和输出都被称为feature map 卷积核技巧 0x01 多个小卷积核代替大卷积核 之前的观念是越大的卷积核感受野(receptive field)越大, 看到的信息越多, 提取的特征越好, 但存在问题: 参数剧增, 计算…

    2023年4月6日
    00
  • [深度应用]·使用一维卷积神经网络处理时间序列数据

    概述 许多技术文章a都关注于二维卷积神经网络(2D CNN)的使用,特别是在图像识别中的应用。而一维卷积神经网络(1D CNNs)只在一定程度上有所涉及,比如在自然语言处理(NLP)中的应用。目前很少有文章能够提供关于如何构造一维卷积神经网络来解决你可能正面临的一些机器学习问题。本文试图补上这样一个短板。     ​       何时应用 1D CNN? C…

    卷积神经网络 2023年4月8日
    00
  • [转] 1*1卷积核作用

    妈蛋不让直接贴内容,那mark个地址吧: https://www.zhihu.com/question/56024942 第二个回答,图文并茂,直击要点。

    卷积神经网络 2023年4月6日
    00
  • TFRecord格式存储数据与队列读取实例

    下面详细讲解“TFRecord格式存储数据与队列读取实例”的完整攻略。本文将包含两个具体的示例说明,以帮助读者更好地理解和掌握相关知识。 什么是TFRecord格式? TFRecord是一种TensorFlow的数据格式,它是一种二进制格式,可以更加高效地存储数据,方便数据的快速读取和处理。 使用TFRecord的好处包括: 无需通过大量的代码去读取和处理数…

    卷积神经网络 2023年5月15日
    00
  • 斯坦福NLP课程 | 第11讲 – NLP中的卷积神经网络

    NLP课程第11讲介绍了卷积神经网络 (CNN)及模型细节,并讲解CNN和深度CNN在文本分类中的使用,最后介绍了Q-RNN模型。 作者:韩信子@ShowMeAI,路遥@ShowMeAI,奇异果@ShowMeAI教程地址:http://www.showmeai.tech/tutorials/36本文地址:http://www.showmeai.tech/ar…

    卷积神经网络 2023年4月7日
    00
  • 手写数字识别-卷积神经网络cnn(06-2)

    卷积和池化在深度学习中的作用是对图像和文本信息提取特征的常用方式,特别是在分类领域 卷积:通过不同的卷积核与图像或文本数据矩阵 进行矩阵相乘,得到不同特征的若干组训练特征数据 池化:池化通常有两种最大池化(max-pooling)和平均池化,最大池化就是在一块矩阵区域(比如2X2,4个像素点),取最大的那个值作为输出,平均池化就是取四个像素点的平均值作为输出…

    2023年4月8日
    00
合作推广
合作推广
分享本页
返回顶部