基于一种微型Autograd引擎构建深度神经网络的方法

文章结尾附带源码获取方法

一个微型 Autograd 引擎。使用类似 PyTorch 的 API 在动态构建的 DAG 和其上的小型神经网络库上实现反向传播(反向模式自动差分)。两者都很小,分别只有大约 100 行和 50 行代码。 DAG 仅对标量值进行操作,因此例如我们将每个神经元分解成所有单独的微小加法和乘法。然而,这足以构建整个深度神经网络进行二元分类.

下面所述的示例,显示了许多可能支持的操作:

训练神经网络

 代码demo.ipynb 提供了训练 2 层神经网络 (MLP) 二元分类器的完整演示。这是通过从 micrograd.nn 模块初始化神经网络、实现简单的SVM“最大边缘”二元分类损失并使用 SGD 进行优化来实现的。如笔记本中所示,使用具有两个 16 节点隐藏层的2层神经网络,我们在月球数据集上实现了以下决策边界:

追踪/可视化

为了更加方便,代码trace_graph.ipynb 生成graphviz 可视化。例如。下面的这个是一个简单的 2D 神经元,通过在下面的代码中调用 draw_dot 获得,它显示数据(每个节点中的左侧数字)和梯度(每个节点中的右侧数字)。

源码获取方法:请点击下方二维码获取

  • 12
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
好的,以下是一个使用Binding方法实现的WebView微型浏览器的示例代码。 在 XAML 文件中,我们需要添加一个 WebView 控件和一个 TextBox 控件用于输入网址: ```xaml <Grid> <WebView x:Name="webView" /> <TextBox x:Name="urlTextBox" TextChanged="UrlTextBox_TextChanged" /> </Grid> ``` 在 C# 代码中,我们需要创建一个名为 BrowserViewModel 的类,并在其中添加一个名为 NavigateCommand 的命令。这个命令将在用户输入网址并按下 Enter 键时被触发。 ```csharp using System.Windows.Input; using Windows.UI.Xaml.Controls; namespace WebViewMiniBrowser { public class BrowserViewModel { public ICommand NavigateCommand { get; } public BrowserViewModel() { NavigateCommand = new RelayCommand<string>(Navigate); } private void Navigate(string url) { webView.Navigate(new Uri(url)); } private WebView webView; public void SetWebView(WebView webView) { this.webView = webView; } } } ``` 在这个类中,我们创建了一个 RelayCommand 泛型类,它将在命令被触发时执行 Navigate 方法。我们还添加了一个 SetWebView 方法,用于在视图中设置 WebView 控件的引用。 现在,我们需要在视图的代码中创建一个 BrowserViewModel 的实例,并将其与视图绑定起来。我们还需要将视图中的 WebView 控件传递给 BrowserViewModel。 ```csharp public sealed partial class MainPage : Page { public MainPage() { this.InitializeComponent(); var viewModel = new BrowserViewModel(); viewModel.SetWebView(webView); DataContext = viewModel; } private void UrlTextBox_TextChanged(object sender, TextChangedEventArgs e) { var viewModel = DataContext as BrowserViewModel; viewModel.NavigateCommand.Execute(urlTextBox.Text); } } ``` 在这个代码中,我们在 MainPage 构造函数中创建了 BrowserViewModel 的实例,并将其与视图进行绑定。我们还在 SetWebView 方法中将视图中的 WebView 控件传递给 BrowserViewModel。 最后,我们在 TextChanged 事件处理程序中获取 BrowserViewModel 的实例,并执行 NavigateCommand 命令来导航到用户输入的网址。 这样,我们就完成了一个使用 Binding 方法实现的 WebView 微型浏览器。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

机器视觉实验室

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值