上午: 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)
制作网站前,通常需要找寻相关设计灵感,有时候想破头就是没想法,素材对网页内容来说很重要,好不容易找到...
今天试着写了滚动视差的网站 滚动视差主要是靠东西不同的滚动速度来做到前後落差的感觉 先看成品 先做最...
Python基础语法 列印讯息 print(“所输入的讯息”, 变数名称) 这是一个会将输入的讯息所...
接续昨天未完成的作业 依据规格书,HASH ID 是由给定的4组hash值算出 我先以写死的值来测试...
您的订阅是我制作影片的动力 订阅点这里~ 影片程序码 library(naniar) data(ir...