C# 深度学习框架 TorchSharp 原生训练模型和图像识别-手写数字识别
目录开始使用 Torch准备下载数据集显示图片加载数据集定义网络优化模型参数训练模型保存和加载模型使用模型识别图片
教程名称:使用 C# 入门深度学习
作者:痴者工良
教程地址:https://torch.whuanle.cn
电子书仓库:https://github.com/whuanle/cs_pytorch
Maomi.Torch 项目仓库:https://github.com/whuanle/Maomi.Torch ...
Brainfly: 用 C# 类型系统构建 Brainfuck 编译器
Brainfuck 简介
Brainfuck 是由 Urban Müller 在 1993 年创造的一门非常精简的图灵完备的编程语言。
正所谓大道至简,这门编程语言简单到语法只有 8 个字符,每一个字符对应一个指令,用 C 语言来描述的话就是:
字符
含义
>
++ptr
<
--ptr
+
++*ptr
-
--*ptr
.
putchar(*ptr)
,
*ptr = getchar()
[
wh ...
推荐一个C#轻量级矢量图形库
推荐一个轻量级矢量图形库,可用于生成 PDF、SVG、PNG等。
01 项目简介
VectSharp 是一个功能强大的 C# 库,专门用于创建矢量图形,包括文本,不依赖任何第三方,支持跨平台运行,包括 Mac、Windows 和 Linux。使得开发者可以更容易地在他们的项目中集成矢量图形的生成和处理。
02 项目特点
内置字体: 包含了 14 种标准字 ...
聊一聊坑人的 C# MySql.Data SDK
一:背景
1. 讲故事
为什么说这东西比较坑人呢?是因为最近一个月接到了两个dump,都反应程序卡死无响应,最后分析下来是因为线程饥饿导致,那什么原因导致的线程饥饿呢?进一步分析发现罪魁祸首是 MySql.Data,这就让人无语了,并且反馈都是升级了MySql.Data驱动引发,接下来我们简单聊一下。
二: MySql.Data 到底怎么了
...
C#委托的前世今生
一、前言
大家好!我是付工。
十年前,刚开始学C#编程的时候,被委托困扰了很久。
今天跟大家分享一下关于委托的那些事儿。
二、委托原理
什么是委托?
抛开编程,委托是一个汉语词语,指的是把事情托付给别人或别的机构办理。
为什么会有委托?什么时候使用委托?
有些事情我们直接干不了,需要找人来帮忙。
比如:
我们需 ...
C# 入门深度学习:万字长文讲解微积分和梯度下降
教程名称:使用 C# 入门深度学习
作者:痴者工良
地址:
https://torch.whuanle.cn
目录微积分极限导数求导公式乘除求导例题复合函数求导的链式法则Sigmoid 函数的导数求最小值问题微分积分偏导数多元函数定义域多元函数的值多元函数的极限偏导数全微分偏导数求最小值拉格朗日乘数法梯度方向导数梯度梯度下降法的基本公式哈 ...
使用 C# 入门深度学习:线性代数
教程名称:使用 C# 入门深度学习
作者:痴者工良
地址:
https://torch.whuanle.cn
线性代数
目录线性代数推荐书籍基础知识标量、向量、矩阵Pytorch 的一些数学函数线性代数向量向量的概念向量的加减乘除法向量的投影柯西-施瓦茨不等式向量的点积向量积直线和平面表示法矩阵矩阵的加减矩阵乘法
推荐书籍
大家都知道学习 Pyt ...
使用 C# 入门深度学习:Pytorch 基础
教程名称:使用 C# 入门深度学习
作者:痴者工良
地址:
https://torch.whuanle.cn
1.2 Pytorch 基础
本文内容介绍 Pytorcn 的基础 API,主要是数组的创建方式和运算方式,由于相关内容跟 Numpy 比较相似,并且 Numpy 类型可以转 torch.Tensor,因此对 Numpy 感兴趣的读者可以参考笔者的其它文章:
Python 之 Numpy 框架入 ...
深入解析C#异步编程:await 关键字背后的实现原理
C# 异步编程中 await 实现原理详解
在C#中,async 和 await 关键字用于编写异步代码。本文将详细介绍 await 的实现原理,包括状态机的生成、回调函数的注册和触发等关键步骤。
1. 异步方法的基本概念
在C#中,async 关键字标记一个方法为异步方法,而 await 关键字用于等待一个异步操作完成。异步方法可以提高程序的响应性 ...
C# 13(.Net 9) 中的新特性 - 半自动属性
C# 13 即 .Net 9 按照计划会在2024年11月发布,目前一些新特性已经定型,今天让我们来预览其中的一个新特性:
作者注:该特性虽然随着 C# 13 发布,但是仍然是处于 preview 状态的特性,请谨慎使用
半自动属性 Semi-auto properties
大家都知道,C# 早在 3.0 时候就添加了自动属性这个特性,让我们一起来回顾一下自动属性 : ...
在C#中基于Semantic Kernel的检索增强生成(RAG)实践
Semantic Kernel简介
玩过大语言模型(LLM)的都知道OpenAI,然后微软Azure也提供了OpenAI的服务:Azure OpenAI,只需要申请到API Key,就可以使用这些AI服务。使用方式可以是通过在线Web页面直接与AI聊天,也可以调用AI的API服务,将AI的能力集成到自己的应用程序中。不过这些服务都是在线提供的,都会需要根据token计费, ...
C# 并发控制框架:单线程环境下实现每秒百万级调度
前言
在工业自动化和机器视觉领域,对实时性、可靠性和效率的要求越来越高。为了满足这些需求,我们开发了一款专为工业自动化运动控制和机器视觉流程开发设计的 C# 并发流程控制框架。
该框架不仅适用于各种工业自动化场景,还能在单线程环境下实现每秒百万次以上的调度频率,从而从容应对涉及成千上万输入输出点数的复杂任 ...
C#轻松实现Modbus通信
1、前言
大家好!我是付工。前面给大家介绍了一系列关于RS485与Modbus的知识。
终于有人把RS485说清楚了终于有人把Modbus说明白了通透!终于把ModbusRTU弄明白了这样看来,ModbusTCP协议太简单了今天跟大家聊聊关于C#如何实现Modbus通信。
2、开源通信库
通信库是对通信协议的封装,一般是以dll动态链接库的形式存在,对于 ...
C#/.NET/.NET Core优秀项目和框架2024年9月简报
前言
公众号每月定期推广和分享的C#/.NET/.NET Core优秀项目和框架(每周至少会推荐两个优秀的项目和框架当然节假日除外),公众号推文中有项目和框架的介绍、功能特点、使用方式以及部分功能截图等(打不开或者打开GitHub很慢的同学可以优先查看公众号推文,文末一定会附带项目和框架源码地址)。注意:排名不分先后,都 ...
2024 年 C# 高效开发:精选实用类库
前言
在平时开发中,好的类库能帮助我们快速实现功能,C#有很多封装好的类库。
本文将介绍一些2024年特别受欢迎的C#类库,并分析各自的优点让我们编程写代码变的更轻松、更快捷。
快来看一看有没有大家常用的类库,欢迎各位小伙伴留言补充。
1、Entity Framework Core
Entity Framework Core 是 Microsoft 推荐的 ORM(对象 ...
C#整合Ollama实现本地LLMs调用
前言
近两年AIGC发展的非常迅速,从刚开始的只有ChatGPT到现在的很百家争鸣。从开始的大参数模型,再到后来的小参数模型,从一开始单一的文本模型到现在的多模态模型等等。随着一起进步的不仅仅是模型的多样化,还有模型的使用方式。大模型使用的门槛越来越低,甚至现在每个人都可以在自己的电脑上 ...
C#自定义控件—旋转按钮
C#用户控件之旋转按钮
按钮功能:手自动旋转,标签文本显示、点击二次弹框确认(源码在最后边);
【制作方法】
找到控件的中心坐标,画背景外环、内圆;再绘制矩形开关,进行角度旋转即可获得;
【关键节点】
No.1 获取中心坐标,思考要绘制图形的相对坐标、宽度、高度;
No.2 更改坐标系原点,以此原点为坐标,绘制 ...
C#自定义控件—指示灯
C#用户控件之指示灯
在体现通讯状态、运行状态等用一个靓眼的指示灯如何做?
思路(GDI)
外环用笔绘制(Pen),内圆用画刷(SolidBrush);
两个方法(用笔画圆,用画刷填充圆的内部):
绘制边界RectangleF定义的椭圆/圆
DrawEllipse(Pen pen,RectangleF rect)
填充RectangleF定义边框的椭圆的内部
FillEllipse(Br ...
C#设计模式入门实战教程
什么是设计模式
设计模式是对面向对象设计中反复出现的问题的解决方案。它们提供了被反复使用、多数人知晓的、经过分类编目的代码设计经验总结。
设计模式的作用
提高代码的可重用性:通过定义一套标准的解决方案,设计模式使得相同或类似的问题可以在不同的项目中复用相同的代码结构或逻辑。
增强代码的可读性:设计模式 ...
C#自定义控件—流动管道
C#用户控件之流动管道
如何绘制一个动态的流动管道(FlowPipe)?
分两步绘制
定义属性;
画布重绘;
主要技能:
管道的绘制(渐变色矩形)
/// <summary>
/// 画渐变色矩形的方法
/// </summary>
/// <param name="g">画布</param>
/// <param name="brush">画刷</param>
/// <param name="pen">笔</para ...