Sigue a Li Mu para aprender las notas del curso de IA ch01
¡muy recomendable! ! !
El curso del Sr. Li Mu no tiene fundamentos y es muy detallado. No aprendió IA sistemáticamente antes, pero ahora simplemente sigue la corriente.
URL del curso: https://courses.d2l.ai/zh-v2/Haga clic
para ingresar a la página de inicio del curso,
que contiene la introducción al curso, videos, cursos y códigos.
Este blog registra principalmente notas de estudio. Bienvenido a discutir.
ch_01
N es una muestra de matriz
- 0-d (escalar)[1] una categoría
- 1-d (vector) [1.0,2.3,3.4] un vector propio
- 2-d (matriz)[[1.0,2.7],[2.3,1.1]]
- 3-d ... ancho x alto x canales de una imagen RGB
- 4-d ... un lote de imágenes RGB (tamaño del lote x ancho x alto x canales)
- 5-d ... un lote de video (tamaño del lote x tiempo x ancho x alto x canales)
elemento de acceso
[fila columna]
- array[1,2] —— elemento en la fila 2, columna 3
- array[1,:] - todos los elementos de una fila
- array[:,1] - una lista de todos los elementos
- array[1:3,1:] - todos los elementos después de la fila 1, la fila 2 y la columna 2
- array[::3,::2] —— dos elementos en cada fila y un elemento sin columna
tensor
Un tensor representa una matriz de valores, que pueden
tener múltiples
dimensiones 10, 11])
Operaciones básicas de tensor
- Acceda a la forma del tensor a través de la propiedad de forma del tensor
- Para cambiar la forma de un tensor sin cambiar la cantidad de elementos y los valores de los elementos, podemos llamar a la función de remodelación (también, cuando la matriz es grande, puede agregar -1 para calcular automáticamente la forma)
- Use todos los 0, todos los 1, otras constantes o números seleccionados aleatoriamente de una distribución específica (por ejemplo, torch.ones (12), torch.zeros (12), torch.randn (12))
operación
Los operadores aritméticos estándar comunes (+, -, *, /) también se pueden exponenciar torch.exp(x)
.
Se pueden concatenar varios tensores juntos torch.cat()
.
La suma de todos los elementos en un tensor produce un tensor con un solo elemento torch.sum
.
Tensor también tiene un mecanismo de transmisión.
Indexación y corte
La indexación y el corte de tensores son los mismos que los estándares de la lista de Python.
conversión de tipos
Convertir a tensor NumPy
A = X.numpy()
B = torch.tensor(A)
type(A),type(B)
producción:
(numpy.ndarray, torch.Tensor)
Preprocesamiento de datos
leer datos
Entre las herramientas de análisis de datos más utilizadas en Python, se suele utilizar el paquete pandas.
Ejemplo:
crear un archivo csv
import os
os.makedirs(os.path.join('..', 'data'), exist_ok=True)
data_file = os.path.join('..', 'data', 'house_tiny.csv')
with open(data_file, 'w') as f:
f.write('NumRooms,Alley,Price\n') # 列名
f.write('NA,Pave,127500\n') # 每行表示一个数据样本
f.write('2,NA,106000\n')
f.write('4,NA,178100\n')
f.write('NA,NA,140000\n')
Tenga en cuenta que los elementos "NaN" representan valores faltantes
Para cargar el conjunto de datos original del archivo csv creado, importamos el paquete pandas y llamamos a la función read_csv
import pandas as pd
data = pd.read_csv(data_file)
print(data)
resultado de impresión
NumRooms Alley Price
0 NaN Pave 127500
1 2.0 NaN 106000
2 4.0 NaN 178100
3 NaN NaN 140000
Manejar valores faltantes
Dividir los datos en datos de entrada y salida:
inputs, outputs = data.iloc[:, 0:2], data.iloc[:, 2]
para manejar los datos faltantes, los métodos típicos incluyen la interpolación y la eliminación.
Por ejemplo,
inputs.fillna(inputs.mean())
la interpolación del valor medio
inputs = pd.get_dummies(inputs, dummy_na=True)
convierte los datos de la cadena en 0 o 1.
El método específico puede consultar los datos
convertir a tensor
Todas las entradas de entradas y salidas son de tipo numérico y deben convertirse al formato de tensor para facilitar los cálculos futuros.
X, y = torch.tensor(inputs.values), torch.tensor(outputs.values)