当前位置:   article > 正文

人工智能小白日记之5 ML准备工作篇_manipulating tensors

manipulating tensors

前言

根据上一节的提示,我们来到了学习和使用机器学习一节。先从官网教程上截一段话
在这里插入图片描述
这里推荐了一本书《使用python进行深度学习》,里面用的也是Keras库。

同时教程分为,机器学习速成课程 和 后续学习计划 两部分。今天先看看速成课程。

机器学习速成课程

这篇crash course 简直666啊,有木有,专门做了这样一个供人学习的网站,泪目啊。咱不好好学都对不起人家一片苦心。
https://developers.google.cn/machine-learning/crash-course/

1 前提条件

1.掌握入门级代数知识。 您应该了解变量和系数、线性方程式、函数图和直方图(熟悉对数和导数等更高级的数学概念会有帮助,但不是必需条件)。

2.熟练掌握编程基础知识,并且具有一些使用 Python 进行编码的经验。 机器学习速成课程中的编程练习是通过 TensorFlow 并使用 Python 进行编码的。您无需拥有任何 TensorFlow 经验,但应该能够熟练阅读和编写包含基础编程结构(例如,函数定义/调用、列表和字典、循环和条件表达式)的 Python 代码。

2 准备工作

极速课程里都配置有一些编程练习,MLCC 的编程练习可以 Jupyter Notebook (.ipynb) 格式下载,安装步骤如下:
https://developers.google.cn/machine-learning/crash-course/running-exercises-locally

我去,装了好多东西
在这里插入图片描述
jupyter notebook,成功打开jupyter
在这里插入图片描述
并自动在浏览器中弹出页面
在这里插入图片描述
然后下载所有练习
http://download.mlcc.google.cn/mledu-exercises/mlcc-exercises_zh-CN.zip

解压到启动日志中的启动位置:
在这里插入图片描述
刷新web页面即可
在这里插入图片描述

2-1 前置练习

我们来看一下准备里面说的几个前置练习

2-1-1 helloworld

hello_world.ipynb:在低阶 TensorFlow 中编码的“Hello World”。

在jupyter中找到helloworld,我去,这才是真正的helloworld啊- -
在这里插入图片描述
这个helloworld人家说了,学习目标是这个
在这里插入图片描述
好吧,选中helloworld的代码段(点一下就好),光标在闪就说明选中了
在这里插入图片描述
然后运行,点击上方运行按钮
在这里插入图片描述
ok,跑出来了。
在这里插入图片描述
当然,我们也可以复制代码自己本地python跑。

2-1-2 tensorflow_programming_concepts

tensorflow_programming_concepts.ipynb:演示了 TensorFlow 应用中的基本组件:张量、指令、图和会话。

TensorFlow 编程本质上是一个两步流程:
1.将常量、变量和指令整合到一个图中。
2.在一个会话中评估这些常量、变量和指令。

from __future__ import print_function

import tensorflow as tf

# Create a graph.创建图
g = tf.Graph()

# Establish the graph as the "default" graph.
with g.as_default():
#将常量、变量和指令整合到这个图中
  # Assemble a graph consisting of the following three operations:
  #   * Two tf.constant operations to create the operands.
  #   * One tf.add operation to add the two operands.
  x = tf.constant(8, name="x_const")
  y = tf.constant(5, name="y_const")
  sum = tf.add(x, y, name="x_y_sum")


  # Now create a session.在一个会话中评估这些常量、变量和指令。
  # The session will run the default graph.
  with tf.Session() as sess:
    print(sum.eval())
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
2-1-3 creating_and_manipulating_tensors

creating_and_manipulating_tensors.ipynb:张量快速入门 - TensorFlow 编程中的核心概念。此外,还回顾了线性代数中的矩阵加法和乘法概念。

新技能1:这里面的代码是分段的,运行时要从上到下,逐块运行。
新技能2: 代码块是可以直接编辑的,添加你的代码,直接运行吧

》练习1: 执行矢量运算以创建一个“just_under_primes_squared”矢量,其中第 i 个元素等于 primes 中第 i 个元素的平方减 1。例如,第二个元素为 3 * 3 - 1 = 8

just_under_primes_squared = tf.subtract(tf.pow(primes,2),one)
print("just_under_primes_squared:",just_under_primes_squared)
  • 1
  • 2

别问我怎么直到方法名的,这东西可以查一下,搜一下TensorFLow 数学运算。

tf.reshape() 方法不要太6,可以进行张量变形。28变成44,8*2,毫不费力。我去,还能升将维度,逆天了有木有。

》练习 2:改变两个张量的形状,使其能够相乘。
下面两个矢量无法进行矩阵乘法运算:
a = tf.constant([5, 3, 2, 7, 1, 4])
b = tf.constant([4, 6, 3])
请改变这两个矢量的形状,使其成为可以进行矩阵乘法运算的运算数。 然后,对变形后的张量调用矩阵乘法运算。

#分析:这是两个1阶向量。1*6和1*3,可以变成2*3和3*1,
#才能够进行矩阵乘法

matrix_a = tf.constant([5, 3, 2, 7, 1, 4],
    dtype=tf.int32)
matrix_b = tf.constant([4, 6, 3],
    dtype=tf.int32)

reshaped_2x3_a = tf.reshape(matrix_a, [2,3])
print("reshaped_2x3_a:",reshaped_2x3_a.numpy())
reshaped_3x1_b = tf.reshape(matrix_b, [3,1])
print("reshaped_3x1_b:",reshaped_3x1_b.numpy())

matrix_multiply_a_b = tf.matmul(reshaped_2x3_a, reshaped_3x1_b)
print("matrix_multiply_a_b:",matrix_multiply_a_b.numpy())
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

运行结果
在这里插入图片描述
》练习 3:模拟投掷两个骰子 10 次。
创建一个骰子模拟,在模拟中生成一个 10x3 二维张量,其中:

列 1 和 2 均存储一个六面骰子(值为 1-6)的一次投掷值。
列 3 存储同一行中列 1 和 2 的值的总和。
例如,第一行中可能会包含以下值:

列 1 存储 4
列 2 存储 3
列 3 存储 7

分析:前面的例子,教了我们创建n*n的张量并初始化,然后是更改。要做
的事情有,创建两个10*1的张量,初始化为1-6的随机数。然后做两个张量
的加法,最后将三个张量设置到一个10*3的张量里
  • 1
  • 2
  • 3

这题没写,看了下答案,差不多。

2-1-4 intro_to_pandas

??熊猫内裤。

pandas 是一种列存数据分析 API。它是用于处理和分析输入数据的强大工具,很多机器学习框架都支持将 pandas 数据结构作为输入。
主要支持Series和DataFrame两种结构
在这里插入图片描述
单个Series就是可以理解为单列
在这里插入图片描述
这个DataFrame很明显就把两个Series合并成了一个类似表格的数据。

california_housing_dataframe = pd.read_csv("https://download.mlcc.google.cn/mledu-datasets/california_housing_train.csv", sep=",")
california_housing_dataframe.describe()
  • 1
  • 2

看样子还能直接读取一整个文件,这就比较好用了。可惜访问不了?。连接时报错:urllib.error.URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:852)>

查询解决方案:https://blog.csdn.net/hudeyu777/article/details/76021573

这里添加代码:

import ssl
ssl._create_default_https_context = ssl._create_unverified_context
  • 1
  • 2

总算可以了。
在这里插入图片描述
读出来的也是一个类似表格结构的DataFrame,难怪叫列存数据分析API,不是列,就是列构成的表。

貌似是我的chrome的问题,最近文件也下载不了。如果没有出现这个问题,可以忽略掉。

3 小结

至此前置任务基本搞定,数学部分可以搜搜自学一下。前置任务基本就是一些概念,和环境准备。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/736000
推荐阅读
相关标签
  

闽ICP备14008679号