Day29 参加职训(机器学习与资料分析工程师培训班),Tensorflow.keras & Pytorch

上午: Python机器学习套件与资料分析

使用tensorflow.keras
测试不同optimizer、batzh_size影响的数据结果

optimizer = ['rmsprop', 'sgd', 'adam', 'adagrad', 'adamax']Batch_size = [8, 16, 32, 64]Loss_test = []MAE_test = []#套用不同的optimizer & Batch_sizefor opt in optimizer:    Admission_Model.set_weights(Admission_Model_weights)    Admission_Model.compile(optimizer = opt, loss = 'mse', metrics = ['mae'])    Admission_Model_History = Admission_Model.fit(X_train, y_train, epochs = 20, batch_size = 8, verbose = 0,                                                  validation_data = (X_test, y_test))    Result = Admission_Model.evaluate(X_test, y_test)    Loss_test.append(Result[0])    MAE_test.append(Result[1])
import matplotlib.pyplot as pltplt.figure(dpi = 100)plt.bar(range(len(optimizer)), Loss_test)plt.xticks(range(len(optimizer)), optimizer)plt.xlabel('Optimizer')plt.ylabel('MSE')plt.show()

http://img2.58codes.com/2024/20139039RTBJ7Zi8ZG.png

下午: Pytorch 与深度学习初探

######################### step1: load data (generate) ############import torchimport torch.nn as nnimport matplotlib.pyplot as pltimport numpy as npfrom sklearn import datasetsdef scatter_plot():  plt.scatter(X[Y==0,0], X[Y==0,1]) # scatter(X1,X2) where y==0  plt.scatter(X[Y==1,0], X[Y==1,1]) #==> scatter(X[Y==0,0],X[Y==0,1])def plot_fit(model=0):  if model==0:    w1=-7    w2=5    b=0  else:    [w,b]=model.parameters()    [w1,w2]=w.view(2)    w1=w1.detach().item()    w2=w2.detach().item()    b=b[0].detach().item()  x1=np.array([-1.5,1.5])  x2=(w1*x1+b)/(-1*w2)  scatter_plot()  plt.plot(x1,x2,'r')  plt.show()# generate data n_samples=100centers=[[-0.5,-0.5],[0.5,0.5]]X,Y=datasets.make_blobs(n_samples=n_samples,random_state=1,centers=centers,cluster_std=0.2)print("X=",X.shape,"Y=",Y.shape)
########################### step2: preprocessing X,Y ############tensorX=torch.Tensor(X)tensorY=torch.Tensor(Y.reshape(len(X),1))print(tensorX.shape,tensorY.shape)print(type(tensorX))plot_fit(0)
########################### step3: build model ############class LogRegModel(nn.Module): def __init__(self,numIn,numOut):   super(LogRegModel,self).__init__()   self.layer1=torch.nn.Linear(numIn,numOut) def forward(self,x):   x=self.layer1(x)   yPre=torch.sigmoid(x)   return yPremodel=LogRegModel(2,1)print(model)plot_fit(model)#print("########### parameters=",w,b)criterion= nn.BCELoss()optimizer=torch.optim.SGD(model.parameters(),lr=0.01)#advance 2:lr=0.0001
############################ step4: traing model############torch.manual_seed(1)epochs=5000losses=[]for e in range(epochs):  preY=model.forward(tensorX)  loss=criterion(preY,tensorY)  losses.append(loss)  optimizer.zero_grad()  loss.backward()  optimizer.step()plt.plot(range(epochs),losses)plt.show()###### plot boundary plot_fit(model)# step5: evaluate model (draw)

http://img2.58codes.com/2024/201390396OSFFm4IH2.png
http://img2.58codes.com/2024/20139039vJJjODiI7u.png
http://img2.58codes.com/2024/201390398hcZylgxDm.png


关于作者: 网站小编

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

热门文章