吴恩达DeepLearning第二部分作业week3

吴恩达DeepLearning第二部分作业week3,第1张

又麻了,搭建环境花了半天。因为兼容问题Tensorflow版本和其他库版本的要求非常复杂。推荐用anaconda和pycharm。anaconda很容易创建各个版本的python的环境。

anaconda安装教程:

Anaconda安装(过程详细)_基QI学习的博客-CSDN博客_anaconda安装

pycharm安装教程:

Download PyCharm: Python IDE for Professional Developers by JetBrains

下载右边那个Community版免费的

搭建Tensorflow

python环境搭建

          打开Anaconda Prompt,是个命令行窗口。

         输入 conda create -n tensorflow python=3.6.2

         回车来创建一个3.6.2版本的python环境

         等他询问是否继续,输入y,回车

         创建完成后,输入conda activate tensorflow 回车激活环境

         再输入 conda install -c hesi_m tensorflow 安装Tensorflow1.11.0版本

         因为作业用的是tensorflow版本1运算比较小没必要用GPU,GPU问题还多

         等待完成

         输入pip install matplotlib==2.2.2,因为Tensorflow版本比较老这些库也要用老版,不然会报错。如果提示已经有matplotlib,就输入 conda uninstall matplotlib 先删除再安装

         输入 conda uninstall numpy

         输入 pip install numpy==1.13.3

pycharm设置:

         打开pycharm,选择新建项目

        

位置:作业的路径

选择先前配置的解释器,然后点省略号。

 选择conda环境,然后找到conda安装路径下的python.exe,设为解释器路径,确定

回到项目窗口下拉选择tensorflow版本 

创建就行,在pycharm里打开要编写的py文件

至此,环境创建完成。

下面是tensorflow的基本 *** 作,先导包和忽略tf警告:

import os
import numpy as np
import h5py
import matplotlib.pyplot as plt
import tensorflow as tf
from tensorflow.python.framework import ops
import tf_utils
import time

os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'  # 忽略警告
np.random.seed(1)

布置简单运算:

def test():
    y_hat = tf.constant(36, name="y_hat")  # 声明一个常量
    y = tf.constant(39, name="y")  # 声明一个常量
    '''tf.constant(value,type = None,shape = None,name = "Const",verify_shape = False)
    1、第一个参数value是必需的,该参数可以的是数值,也可以是列表。
    2、第二个参数是数据类型,其一般可以是tf.float32, tf.float64,int32等。
    3、第三个参数是形状
    4、第四个参数用于定义名称
    5、第五个参数verify_shape默认为False,如果修改为True的话表示检查value的形状与shape是否相
 符,如果不符会报错。'''
    loss = tf.Variable((y - y_hat) ** 2, name="loss")
    '''  在TensorFlow中,变量(Variable)是特殊的张量(Tensor),它的值可以是一个任何类型和形状的
 张量。
    与其他张量不同,变量存在于单个 session.run 调用的上下文之外,也就是说,变量存储的是持久张
 量,当训练模型时,用变量来存储和更新参数。除此之外,在调用op之前,所有变量都应被显式地初始化过。
    '''
    init = tf.global_variables_initializer()
    '''含有tf.Variable的环境下,因为tf中建立的变量是没有初始化的也就是在debug时还不是一个
 tensor量,而是一个Variable变量类型'''
    with tf.Session() as session:
        session.run(init)
        print(session.run(loss))


test()
def linear_f():
    """y=wx+b"""
    w = np.random.randn(4, 3)
    x = np.random.randn(3, 1)
    b = np.random.randn(4, 1)
    y = tf.matmul(w, x) + b
    '''tf.matmul等价于np.dot'''
    sess = tf.Session()  # 等价于with tf.Session as session:
    result = sess.run(y)  # 运行计算图
    sess.close()  # 关闭sess
    return result


print(linear_f())

使用自带的sigmoid

def sigmoid():
    z = np.random.randn(4, 1)
    x = tf.placeholder(tf.float32, name='x')  # 创建一个占位符,通过feed_dict来传递参数
    y = tf.sigmoid(x)  # 计算sigmoid
    with tf.Session() as session:
        result = session.run(y, feed_dict={x: z})
    return result


print(sigmoid())

独热编码:

def one_hot():
    """
    之前我们进行的都是二分类问题,这次课程介绍了softmax算法是多个分类的问题。
    softmax计算的是到各个分类的概率,用12345作为结果肯定不合适。
    独热编码就是将n种分类结果扩充为n*例子数的矩阵,第i个例子种类为k:y[k][i-1]=1该列其他行置0
    one_hot(indices, depth, on_value=None, off_value=None, axis=None, type=None, name=None)
    indices表示输入矩阵;depth表示输出的尺寸(种类数)。
    """
    labels = np.array([1, 2, 3, 0, 2, 1])
    one_hot_matrix=tf.one_hot(labels,4,axis=0)
    with tf.Session() as session:
        result=session.run(one_hot_matrix)
        session.close()
    return result


print(one_hot())

全0,1矩阵初始化

def init():
    shape=(5,5)
    ones=tf.ones(shape)
    zeros=tf.zeros(shape)
    with tf.Session() as session:
        res1=session.run(ones)
        res0=session.run(zeros)
        session.close()
    return res0,res1


print(init())

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/715649.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-25
下一篇 2022-04-25

发表评论

登录后才能评论

评论列表(0条)

保存