aspnet commited on
Commit
efc740f
·
verified ·
1 Parent(s): 52071ad

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +63 -0
app.py CHANGED
@@ -208,7 +208,9 @@ if __name__ == '__main__':
208
  gradio_thread.join()
209
  flask_thread.join()
210
  '''
 
211
 
 
212
  from ultralytics import YOLO
213
 
214
  # Load a model
@@ -218,3 +220,64 @@ model = YOLO("yolov8n.yaml").load("yolov8n.pt") # build from YAML and transfer
218
 
219
  # Train the model
220
  results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
208
  gradio_thread.join()
209
  flask_thread.join()
210
  '''
211
+ #############################
212
 
213
+ '''
214
  from ultralytics import YOLO
215
 
216
  # Load a model
 
220
 
221
  # Train the model
222
  results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
223
+ '''
224
+
225
+
226
+ import torch
227
+ import torch.nn as nn
228
+ import torch.optim as optim
229
+ from torchvision import datasets, transforms
230
+ from torch.utils.data import DataLoader
231
+
232
+ # 定义模型
233
+ class SimpleCNN(nn.Module):
234
+ def __init__(self, num_classes=10):
235
+ super(SimpleCNN, self).__init__()
236
+ self.conv1 = nn.Conv2d(1, 20, 5, 1)
237
+ self.conv2 = nn.Conv2d(20, 50, 5, 1)
238
+ self.fc1 = nn.Linear(4*4*50, 500)
239
+ self.fc2 = nn.Linear(500, num_classes)
240
+
241
+ def forward(self, x):
242
+ x = torch.relu(self.conv1(x))
243
+ x = torch.max_pool2d(x, 2, 2)
244
+ x = torch.relu(self.conv2(x))
245
+ x = torch.max_pool2d(x, 2, 2)
246
+ x = x.view(-1, 4*4*50)
247
+ x = torch.relu(self.fc1(x))
248
+ x = self.fc2(x)
249
+ return x
250
+
251
+ # 加载数据集
252
+ transform = transforms.Compose([
253
+ transforms.ToTensor(),
254
+ transforms.Normalize((0.5,), (0.5,))
255
+ ])
256
+
257
+ train_dataset = datasets.MNIST(root='./data', train=True, transform=transform, download=True)
258
+ train_loader = DataLoader(train_dataset, batch_size=64, shuffle=True)
259
+
260
+ # 初始化模型和优化器
261
+ model = SimpleCNN(num_classes=10)
262
+ optimizer = optim.Adam(model.parameters(), lr=0.001)
263
+ criterion = nn.CrossEntropyLoss()
264
+
265
+ # 训练模型
266
+ num_epochs = 5
267
+ for epoch in range(num_epochs):
268
+ for i, (images, labels) in enumerate(train_loader):
269
+ # 前向传播
270
+ outputs = model(images)
271
+ loss = criterion(outputs, labels)
272
+
273
+ # 反向传播和优化
274
+ optimizer.zero_grad()
275
+ loss.backward()
276
+ optimizer.step()
277
+
278
+ if (i+1) % 100 == 0:
279
+ print(f'Epoch [{epoch+1}/{num_epochs}], Step [{i+1}/{len(train_loader)}], Loss: {loss.item():.4f}')
280
+
281
+ # 保存模型(可选)
282
+ torch.save(model.state_dict(), 'model.pth')
283
+