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 pltplt.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_categoricalX_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')/255Y_train = to_categorical(train_y)  # one-hot encodingY_test = to_categorical(test_y)
from tensorflow.keras.models import Sequentialfrom tensorflow.keras.layers import Densemodel = 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=['accuracymodel.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 modelfrom tensorflow.keras.models import load_modelmodel = load_model('mnist_model.h5')model.summary()

下午:Pytorch 与深度学习初探

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

!pip install torch# step1: load data (generate)import torchimport torch.nn as nnimport matplotlib.pyplot as pltimport numpy as npdef 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)*10Y=3*X+torch.randn(200,1)*5plot_fit()# step2: preprocessing X,Yprint("X,Y ready")# step3: build modelmodel=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 modeltorch.manual_seed(1)epochs=10000losses=[]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)

关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章