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日

相关文章

  • 咱是学通信的——卷积的推导

    问,卷积有啥用?积分就够痛苦的了,还来一个广义积分,还是两个函数绕在一块儿的积分。其实卷积在某种大大简化了运算。 假设有一个信号(激励) f(t),输入系统 g(·),那么它的输出(响应)就是g[f(t)],这是一个复合函数,在实际运用当中,是相当难以计算的,更头疼的是,一个系统的函数,并不是那么好找的。于是人们开始考虑简化它。 有一种思路是这样的,对于一个…

    2023年4月8日
    00
  • 吴裕雄–天生自然 Tensorflow卷积神经网络:花朵图片识别

    import os import numpy as np import matplotlib.pyplot as plt from PIL import Image, ImageChops from skimage import color,data,transform,io #获取所有数据文件夹名称 fileList = os.listdir(“F:\\d…

    2023年4月8日
    00
  • TensorFlow(十):卷积神经网络实现手写数字识别以及可视化

    上代码: import tensorflow as tf from tensorflow.examples.tutorials.mnist import input_data mnist = input_data.read_data_sets(\’MNIST_data\’,one_hot=True) #每个批次的大小 batch_size = 100 #计算…

    2023年4月8日
    00
  • Paper:基于图卷积神经网络(Graph Convolutional Networks GCN)的半监督分类

    本文为“SEMI-SUPERVISED CLASSIFICATION WITH GRAPH CONVOLUTIONAL NETWORKS”, 作者ThomasN.Kipf。 本文是基于谱的图卷积网络用来解决半监督学习的分类问题,输入为图的邻接矩阵A,和每一个节点的特征向量H 本问对应的代码为 https://github.com/tkipf/gcn. 半监督…

    2023年4月8日
    00
  • 雷神ZERO值得入手吗 雷神ZERO笔记本详细评测

    雷神ZERO值得入手吗? 如果你想要购买一款性能强劲、耐用可靠的笔记本电脑,那么雷神ZERO绝对值得考虑。下面是一份雷神ZERO的详细评测。 雷神ZERO笔记本电脑概述 雷神ZERO是一款由雷神公司推出的高端游戏本,拥有完美的外观设计和卓越的游戏性能。它采用了Intel第八代酷睿i7处理器和NVIDIA GeForce GTX 1060显卡,可为用户提供顺畅…

    卷积神经网络 2023年5月15日
    00
  • 卷积神经网络Lenet-5实现

    原文地址:http://blog.csdn.net/hjimce/article/details/47323463 作者:hjimce 卷积神经网络算法是n年前就有的算法,只是近年来因为深度学习相关算法为多层网络的训练提供了新方法,然后现在电脑的计算能力已非当年的那种计算水平,同时现在的训练数据很多,于是神经网络的相关算法又重新火了起来,因此卷积神经网络就又…

    2023年4月6日
    00
  • 【DL-2-1】卷积神经网络(CNN)–总体概述

    1、目录 2、简述 3、CNN的结构组成 4、卷积神经网络 VS. 传统神经网络 5、总结 常见问答 二、简述 1980年,一位名为Fukushima的研究员提出了一种分层神经网络模型。他称之为新认知。该模型的灵感来自简单和复杂细胞的概念。neocognitron能够通过了解物体的形状来识别模式。 后来,1998年,卷心神经网络被Bengio,Le Cun,…

    2023年4月5日
    00
  • python opencv实现灰度图和彩色图的互相转换

    下面是关于使用Python OpenCV实现灰度图和彩色图的互相转换的完整攻略。 示例1:将彩色图转换为灰度图 以下是一个将彩色图转换为灰度图的示例: import cv2 # 读取彩色图像 img = cv2.imread(‘color_image.jpg’) # 将彩色图像转换为灰度图像 gray_img = cv2.cvtColor(img, cv2.…

    卷积神经网络 2023年5月16日
    00
合作推广
合作推广
分享本页
返回顶部