train_note

def train_one_epoch(epoch_index, tb_writer):
    running_loss = 0.
    last_loss = 0.

    # Here, we use enumerate(training_loader) instead of
    # iter(training_loader) so that we can track the batch
    # index and do some intra-epoch reporting
    for i, data in enumerate(training_loader):
        # Every data instance is an input + label pair
        inputs, labels = data

        # Zero your gradients for every batch!
        optimizer.zero_grad()

        # Make predictions for this batch
        outputs = model(inputs)

        # Compute the loss and its gradients
        loss = loss_fn(outputs, labels)
        loss.backward()

        # Adjust learning weights
        optimizer.step()

        # Gather data and report
        running_loss += loss.item()
        if i % 1000 == 999:
            last_loss = running_loss / 1000 # loss per batch
            print('  batch {} loss: {}'.format(i + 1, last_loss))
            tb_x = epoch_index * len(training_loader) + i + 1
            tb_writer.add_scalar('Loss/train', last_loss, tb_x)
            running_loss = 0.

    return last_loss

 加入一些tensorboard,epoch等等

# Initializing in a separate cell so we can easily add more epochs to the same run
timestamp = datetime.now().strftime('%Y%m%d_%H%M%S')
writer = SummaryWriter('runs/fashion_trainer_{}'.format(timestamp))
epoch_number = 0

EPOCHS = 5

best_vloss = 1_000_000.

for epoch in range(EPOCHS):
    print('EPOCH {}:'.format(epoch_number + 1))

    # Make sure gradient tracking is on, and do a pass over the data
    model.train(True)
    avg_loss = train_one_epoch(epoch_number, writer)


    running_vloss = 0.0
    # Set the model to evaluation mode, disabling dropout and using population
    # statistics for batch normalization.
    model.eval()

    # Disable gradient computation and reduce memory consumption.
    with torch.no_grad():
        for i, vdata in enumerate(validation_loader):
            vinputs, vlabels = vdata
            voutputs = model(vinputs)
            vloss = loss_fn(voutputs, vlabels)
            running_vloss += vloss

    avg_vloss = running_vloss / (i + 1)
    print('LOSS train {} valid {}'.format(avg_loss, avg_vloss))

    # Log the running loss averaged per batch
    # for both training and validation
    writer.add_scalars('Training vs. Validation Loss',
                    { 'Training' : avg_loss, 'Validation' : avg_vloss },
                    epoch_number + 1)
    writer.flush()

    # Track best performance, and save the model's state
    if avg_vloss < best_vloss:
        best_vloss = avg_vloss
        model_path = 'model_{}_{}'.format(timestamp, epoch_number)
        torch.save(model.state_dict(), model_path)

    epoch_number += 1

import mindspore as ms from mindspore import nn from mindspore import ops #网络搭建 class linear_net(nn.Cell): def __init__(self): super(linear_net,self).__init__() self.dense1=nn.Dense(100,64,activation='relu') self.dense2=nn.Dense(64,10) self.flatten=nn.Flatten() def construct(self,x): x=self.flatten(x) x=self.dense1(x) x=self.dense2(x) return x from mindspore.dataset import vision,transforms,MnistDataset # from download import download # url="https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/notebook/datasets/MNIST_Data.zip" # path=download(url,'./',kind="zip",replace=True) image_transforms=[ vision.Rescale(1./255,0), vision.Resize((10,10)), vision.HWC2CHW() ] label_transform=transforms.TypeCast(ms.int32) batch_size=2500 squeeze=ops.Squeeze(axis=1) train_ds=MnistDataset('MNIST_Data/train') train_ds=train_ds.map(image_transforms,'image') train_ds=train_ds.map(label_transform,'label') train_ds=train_ds.map(lambda x: squeeze(x),'image') train_ds=train_ds.batch(batch_size) test_ds=MnistDataset('MNIST_Data/test') test_ds=test_ds.map(image_transforms,'image') test_ds=test_ds.map(label_transform,'label') test_ds=test_ds.batch(batch_size) train_it=train_ds.create_tuple_iterator() t=next(train_it) print(t) 以上代码为什么报错? --------------------------------------------------------------------------- RuntimeError Traceback (most recent call last) Cell In[22], line 43 40 test_ds=test_ds.batch(batch_size) 42 train_it=train_ds.create_tuple_iterator() ---> 43 t=next(train_it) 44 print(t) File D:\10_The_Programs\4_The_Codes\00_virtual_environment\DeepLearning\Lib\site-packages\mindspore\dataset\engine\iterators.py:360, in Iterator.__next__(self) 358 from mindspore.profiler import mstx 359 range_id = mstx.range_start('dataloader', None) --> 360 out = self._parallel_transformation_iteration() if self.parallel_convert else self.serial_conversion_iteration() 361 mstx.range_end(range_id) 362 return out File D:\10_The_Programs\4_The_Codes\00_virtual_environment\DeepLearning\Lib\site-packages\mindspore\dataset\engine\iterators.py:341, in Iterator.serial_conversion_iteration(self) 337 """ 338 Fetch data to serial conversion 339 """ 340 # Note offload is applied inside _get_next() if applicable since get_next converts to output format --> 341 data = self._get_next() 342 if not data: 343 if self.__index == 0: File D:\10_The_Programs\4_The_Codes\00_virtual_environment\DeepLearning\Lib\site-packages\mindspore\dataset\engine\iterators.py:513, in TupleIterator._get_next(self) 504 """ 505 Returns the next record in the dataset as a list 506 507 Returns: 508 List, the next record in the dataset. 509 """ 511 if self.offload_model is None: 512 return [_transform_md_to_output(t, self._output_numpy, self._do_copy) for t in --> 513 self._iterator.GetNextAsList()] 514 data = [_transform_md_to_tensor(t, self._do_copy) for t in self._iterator.GetNextAsList()] 515 if data: RuntimeError:
10-29
Traceback (most recent call last): File "C:\Users\34283\anaconda3\envs\yolov8\lib\site-packages\ultralytics\engine\trainer.py", line 570, in get_dataset data = check_det_dataset(self.args.data) File "C:\Users\34283\anaconda3\envs\yolov8\lib\site-packages\ultralytics\data\utils.py", line 376, in check_det_dataset raise FileNotFoundError(m) FileNotFoundError: Dataset 'fruit_36.yaml' images not found ⚠️, missing path 'C:\Users\34283\Desktop\NO.1\Train_Custom_Dataset-main\Keypoint detection\4-YOLOV8 keypoint detection - training the triangle keypoint detection model\01-Fruit_36_yolo\01-images\train' Note dataset download directory is 'C:\Users\34283\Desktop\世赛计划\Train_Custom_Dataset-main\关键点检测\3-YOLOV8关键点检测-预训练模型预测\datasets'. You can update this in 'C:\Users\34283\AppData\Roaming\Ultralytics\settings.json' The above exception was the direct cause of the following exception: Traceback (most recent call last): File "C:\Users\34283\anaconda3\envs\yolov8\lib\runpy.py", line 194, in _run_module_as_main ... raise RuntimeError(emojis(f"Dataset '{clean_url(self.args.data)}' error ❌ {e}")) from e RuntimeError: Dataset 'fruit_36.yaml' error Dataset 'fruit_36.yaml' images not found , missing path 'C:\Users\34283\Desktop\NO.1\Train_Custom_Dataset-main\Keypoint detection\4-YOLOV8 keypoint detection - training the triangle keypoint detection model\01-Fruit_36_yolo\01-images\train' Note dataset download directory is 'C:\Users\34283\Desktop\\Train_Custom_Dataset-main\\3-YOLOV8-\datasets'. You can update this in 'C:\Users\34283\AppData\Roaming\Ultralytics\settings.json'
03-15
根据引用\[1\]和引用\[2\]中的代码,我们可以看到在训练过程中,每个epoch中的train_steps是通过len(train_loader)来计算的。而在测试过程中,准确率的计算是通过累加预测正确的样本数来计算的。因此,自定义train_steps准确率的计算可以通过在训练过程中记录每个batch的准确率,并在每个epoch结束后计算平均准确率来实现。 具体的实现步骤如下: 1. 在每个epoch开始前,定义一个变量total_correct来记录每个batch的预测正确的样本数,并初始化为0。 2. 在每个batch结束后,通过torch.eq(predict_y, val_labels.to(device)).sum().item()来计算当前batch的预测正确的样本数,并累加到total_correct中。 3. 在每个epoch结束后,计算平均准确率,即val_accurate = total_correct / (val_num * batch_size),其中val_num为测试集的样本数,batch_size为每个batch的样本数。 请注意,这只是一种可能的实现方式,具体的实现可能会根据代码的结构和需求有所不同。 #### 引用[.reference_title] - *1* *2* [【Pytorch代码学习】——训练部分](https://blog.youkuaiyun.com/weixin_42394092/article/details/122612916)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [【Tensorflow_DL_Note16】TensorFlow可视化学习3_参数,准确率的可视化](https://blog.youkuaiyun.com/maweifei/article/details/80273022)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值