import torch.nn.functional as f #選擇啟用函式
import torch.optim as optim #選擇優化器
import matplotlib.pyplot as plt
#準備資料
batch_size=64
trans=transforms.compose([
transforms.totensor(),
transforms.normalize((0.1307,),(0.3081,))])
#資料載入
train_dataset=datasets.mnist(root='../mnnist/mnist/',train=true,download=true,transform=trans)
train_loader=dataloader(train_dataset,shuffle=true,batch_size=batch_size)
test_dataset=datasets.mnist(root='../mnnist/mnist/',train=false,download=true,transform=trans)
test_loader=dataloader(test_dataset,shuffle=true,batch_size=batch_size)
class net(torch.nn.module):
def __init__(self):
super(net, self).__init__()
self.linear1 = torch.nn.linear(784, 512)
self.linear2 = torch.nn.linear(512, 64)
self.linear3 = torch.nn.linear(64, 10)
def forward(self, x):
x = x.view(-1, 784)
x = f.relu(self.linear1(x))
x = f.relu(self.linear2(x))
x = self.linear3(x) #最後輸出不用進入線性層
return x
model=net()
x=criterion=torch.nn.crossentropyloss() #計算損失
optimizer=optim.sgd(model.parameters(),lr=0.01,momentum=0.5) #momentum帶衝量的???
def train(epoch):
running_loss=0.0
for batch_idx,data in enumerate(train_loader,0):
input,targe=data
optimizer.zero_grad()
output=model(input)
loss=criterion(output,targe)
loss.backward()
optimizer.step()
running_loss+=loss.item() #計算輸出
if batch_idx%300==299:
print("[%d,%d] loss: %.4f" % (epoch+1,batch_idx+1,running_loss/300))
running_loss=0
def test():
correct=0
total=0
with torch.no_grad():
for data in test_loader:
images,labels=data
outputs=model(images)
_,predicted=torch.max(outputs.data,dim=1) #資料和資料下標
total+=labels.size(0) # n*1 0即為數量
correct+=(predicted==labels).sum().item()
print("accuracy on test set: %d %%" % (100*correct/total))
if __name__=='__main__':
for epoch in range(1):
train(epoch)
test()
plt.plot(x, label='train_loss')
plt.title('train_loss')
plt.show()
MVC分頁使用(不使用控制項)
分頁是專案開發中最常用的功能 四要素 1.總資料數量 totalcount 2.總頁碼 pagecount 3 當前頁碼 pageindex 4 每頁顯示的資料數量 pagesize 分頁在專案中肯定是不止乙個頁面去使用的,所以效率方面應該將分頁的方法寫入 common共用的類方法中,而這個成員變數...
vi使用 不斷更新
1.刪除操作 命令模式使用 x刪除游標處的單個字元 dd刪除游標所在行 dw刪除當前字元到單詞尾包括空格的所有字元 x例如3x刪除游標處向右的三個字元 dd例如3dd從當前行開始向下刪除三行文字 2.撤銷操作 u命令取消最近一次的操作,可以使用多次來恢復原有的操作 u取消所有操作 ctrl r可以恢...
mysql使用(不適用)索引
表的主關鍵字 表的字段唯一約束 直接條件查詢的字段 查詢中與其它表關聯的字段 查詢中排序的字段 查詢中統計或分組統計的字段 不建或少建索引 表記錄太少 採用索引去訪問記錄的話,首先需訪問索引表,再通過索引表訪問資料表,一般索引表與資料表不在同乙個資料塊,這種情況下至少要往返讀取資料塊兩次,而不用索引...