Day24 参加职训(机器学习与资料分析工程师培训班),Python程序设计 & Pytorch

上午: Python程序设计
今日教学keras使用内建mnist dataset练习

from tensorflow.keras.datasets import mnist

(train_x, train_y), (test_x, test_y) = mnist.load_data()
# 检视内容
import matplotlib.pyplot as plt

plt.gcf().set_size_inches(15,4)

for i in range(5):
    axe = plt.subplot(1, 5, 1+i)
    axe.imshow(train_x[i], cmap = 'gray')
    axe.set_title(f'label = {train_y[i]}', fontsize = 18)
plt.show()
from tensorflow.keras.utils import to_categorical

X_train = train_x.reshape(60000, 28*28)
X_test = test_x.reshape(10000, 28*28)

X_train = X_train.astype('float')/255 #资料型态从 unit8 转成浮点数,并做正规化
X_test = X_test.astype('float')/255

Y_train = to_categorical(train_y)  # one-hot encoding
Y_test = to_categorical(test_y)
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense

model = Sequential()
model.add(Dense(512, activation = 'relu', input_dim = 28*28))
model.add(Dense(10, activation = 'softmax'))

model.compile(optimizer='rmsprop', loss='categorical_crossentropy', metrics=['accuracy
model.fit(X_train, Y_train, epochs=10, batch_size=128)
test_loss, test_accuracy = model.evaluate(X_test, Y_test)
print(f'Loss = {test_loss}, Accuracy = {test_accuracy}')
#储存模型
model.save('mnist_model.h5')

# Load model
from tensorflow.keras.models import load_model
model = load_model('mnist_model.h5')
model.summary()

下午:Pytorch 与深度学习初探

使用Google Colab撰写程序,依照步骤执行

!pip install torch
# step1: load data (generate)
import torch
import torch.nn as nn
import matplotlib.pyplot as plt
import numpy as np



def plot_fit(option=0):
  plt.scatter(X,Y)
  mx=np.array([-20,20])
  if option==0: 
    [w,b]=[-7,5]
  else:
    [w,b]=model.parameters()
    w=w[0][0].detach().item()
    b=b[0].detach().item()
  my=w*mx+b  
  plt.plot(mx,my,'r')
  plt.show()


X=torch.randn(200,1)*10
Y=3*X+torch.randn(200,1)*5
plot_fit()

# step2: preprocessing X,Y
print("X,Y ready")

# step3: build model
model=nn.Linear(1,1)
torch.nn.init.xavier_uniform_(model.weight)
[w,b]=model.parameters()
print(w,b)
criterion= nn.MSELoss()
optimizer= torch.optim.SGD(model.parameters(),lr=0.0001)

# step4: traing model
torch.manual_seed(1)
epochs=10000
losses=[]

for e in range(epochs):
  preY=model.forward(X)
  loss=criterion(preY,Y)
  losses.append(loss)

  optimizer.zero_grad()
  loss.backward()
  optimizer.step()

plt.plot(range(epochs),losses)
plt.show()

plot_fit(1)
plt.show()
# step5: evaluate model (draw)

<<:  QUIC.cloud CDN 与 DNS 新手教学

>>:  第32天~

找寻你的设计灵感、素材及好工具

制作网站前,通常需要找寻相关设计灵感,有时候想破头就是没想法,素材对网页内容来说很重要,好不容易找到...

Day8-滚动视差(上)_前有文字

今天试着写了滚动视差的网站 滚动视差主要是靠东西不同的滚动速度来做到前後落差的感觉 先看成品 先做最...

Day 07: Python基础必备小知识(下)

Python基础语法 列印讯息 print(“所输入的讯息”, 变数名称) 这是一个会将输入的讯息所...

[Day 15] - 初探永丰银行线上收款API - 丰收款 - HASH ID计算(2) +IV计算

接续昨天未完成的作业 依据规格书,HASH ID 是由给定的4组hash值算出 我先以写死的值来测试...

[Day-5] R语言 - 分群前处理 ( Clustering Preprocessing )

您的订阅是我制作影片的动力 订阅点这里~ 影片程序码 library(naniar) data(ir...