deeplearning.ai——TensorFlow指南

本文深入探讨TensorFlow库,通过计算线性函数、sigmoid激活、损失函数、one-hot编码等概念,逐步构建首个神经网络。内容包括创建占位符、初始化参数、前向传播、计算成本、反向传播及参数更新。最后,通过SIGNS数据集展示了模型训练过程。
摘要由CSDN通过智能技术生成

1 - Exploring the Tensorflow Library

导入库:

import math
import numpy as np
import h5py
import matplotlib.pyplot as plt
import tensorflow as tf
from tensorflow.python.framework import ops
from tf_utils import load_dataset, random_mini_batches, convert_to_one_hot, predict
import os
import tensorflow.python.util.deprecation as deprecation
deprecation._PRINT_DEPRECATION_WARNINGS = False
import tensorflow as tf
if type(tf.contrib) != type(tf): tf.contrib._warning = None

%matplotlib inline
np.random.seed(1)

来看一个计算单个训练样本损失的例子:

y_hat = tf.constant(36, name='y_hat')            # Define y_hat constant. Set to 36.
y = tf.constant(39, name='y')                    # Define y. Set to 39

loss = tf.Variable((y - y_hat)**2, name='loss')  # Create a variable for the loss

init = tf.global_variables_initializer()         # When init is run later (session.run(init)),
                                                 # the loss variable will be initialized and ready to be computed
with tf.Session() as session:                    # Create a session and print the output
    session.run(init)                            # Initializes the variables
    print(session.run(loss))                     # Prints the loss

结果为9

在TensorFlow中编写和运行程序有以下步骤:

  1. 创建尚未执行/计算的张量(变量)。
  2. 编写在这些张量之间进行的操作。
  3. 初始化张量。
  4. 创建一个会话。
  5. 运行会话,将会运行以上所编写的操作。

因此,当我们为损失创建一个变量时,我们简单地将损失定义为其他量的函数,但没有计算其值。为了计算它,需要运行init=tf.global_variables_initializer(),这样就初始化了损失变量,最后一行能够计算损失的值并且打印出来。

1.1 - Linear function

计算如下式子:Y=WX+b,其中W和X是随机矩阵,b是随机向量。

练习:计算WX+b,其中W,X和b由随机正态分布中提取。W的形状为(4,3),X为(3,1),b为(4,1),举个例子,下面是如何定义一个形状为(3,1)的常量X:

x=tf.constant(np.random.randn(3,1), name="X")

X = tf.constant(np.random.randn(3, 1), name='X')
W = tf.constant(np.random.randn(4, 3), name='W')
b = tf.constant(np.random.randn(4, 1), name='b')
Y = tf.matmul(W, X) + b
    
# Create the session using tf.Session() and run it with sess.run(...) on the variable you want to calculate
    
sess = tf.Session()
result = sess.run(Y)

1.2 - Computing the sigmoid

Tensorflow提供了许多常用的神经网络函数包括tf.sigmoid和tf.softmax等等,接下来计算sigmoid。

使用占位符变量x,当运行会话时,需要使用feed字典来传入输入z,作业中要做如下几件事:

  1. 创建一个占位符x
  2. 定义操作,使用tf.sigmoid计算
  3. 运行会话

练习:实现sigmoid函数。

两种创建并使用会话的方法:

# Create a placeholder for x. Name it 'x'.
x = tf.placeholder(tf.float32, name='x')

# compute sigmoid(x)
sigmoid = tf.sigmoid(x)

# Create a session, and run it. Please use the method 2 explained above. 
# You should use a feed_dict to pass z's value to x. 
with tf.Session() as sess:
    # Run session and call the output "result"
    result = sess.run(sigmoid, feed_dict={x:z})
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值