要使用Pytorch中的数据增强,您将需要定义一组可以应用于培训数据的转换功能。您还需要确保将转换功能始终应用于输入图像和相应的注释。然后,您可以使用Torchvision.datasets.ObjectDetectionDataSet类使用批次的方式,将这些转换应用于培训数据。
•在Fortran中复制一个网络,以使用Pytorch开发的模型,并仅使用Fortran重新实现它,从而从文件中加载了节省的权重。这可能需要大量的开发工作,重写已经存在的代码,以及缺少使用Torch的多样化和高度优化功能的机会。重新实施可能是错误的来源,需要其他测试以确保正确性。如果总体目标是将ML纳入Fortran,而不是使用Pytorch特定,那么另一种方法是利用基于Fortran的ML框架(例如Neural-Fortran)(Curcic,2019)。尽管它不允许与Pytorch相互作用,但神经fortran提供了许多直接在Fortran中建造网的神经网络组件。但是,一组功能并不像Pytorch那样丰富,而GPU卸载目前不受支持。目前,菲亚斯(Rouson&Rasmussen,2024年)库是直接在Fortran中开发,培训和部署ML模型的另一种方法,目前是实验性GPU支持。
隐藏在简单之后的是一个事实,即计算卷积要求对输入边界的工作做出假设。虽然这些假设的后果可以在计算机视觉和图像处理中忽略,但在DL中并不容易完成分辨率层次结构的深度,并且在分辨率金字塔的顶部,每个像素可能代表底部的图像的重要片段。
神经网络最终只是一个复杂的函数,它由称为神经元的较小构建块组成。神经元通常是一个简单、易于计算的非线性函数,它将一个或多个输入映射到单个实数。神经元的单个输出通常被复制并作为输入输入到其他神经元。在图形上,我们将神经元表示为图中的节点,并在节点之间绘制有向边,以指示一个神经元的输出将如何用作其他神经元的输入。还需要注意的是,图中的每个边通常与一个称为权重的标量值相关联。这里的想法是,每个神经元的输入都将乘以不同的标量,然后被收集并处理成单个值。训练神经网络的目标主要是选择我们的权重,使网络以特定的方式运行。