Beetle

用 PyTorch 实现基于字符的循环神经网络

时光总嘲笑我的痴心妄想 提交于 2020-12-20 08:05:29
在过去的几周里,我花了很多时间用 PyTorch 实现了一个 char-rnn 的版本。我以前从未训练过神经网络,所以这可能是一个有趣的开始。 这个想法(来自 循环神经网络的不合理效应 )可以让你在文本上训练一个基于字符的循环神经网络recurrent neural network(RNN),并得到一些出乎意料好的结果。 不过,虽然没有得到我想要的结果,但是我还是想分享一些示例代码和结果,希望对其他开始尝试使用 PyTorch 和 RNN 的人有帮助。 这是 Jupyter 笔记本格式的代码: char-rnn in PyTorch.ipynb 。你可以点击这个网页最上面那个按钮 “Open in Colab”,就可以在 Google 的 Colab 服务中打开,并使用免费的 GPU 进行训练。所有的东西加起来大概有 75 行代码,我将在这篇博文中尽可能地详细解释。 第一步:准备数据 首先,我们要下载数据。我使用的是古登堡项目Project Gutenberg中的这个数据: Hans Christian Anderson’s fairy tales 。 !wget -O fairy-tales.txt 这个是准备数据的代码。我使用 fastai 库中的 Vocab 类进行数据处理,它能将一堆字母转换成“词表”,然后用这个“词表”把字母变成数字。 之后我们就得到了一个大的数字数组(

HTML5-WebSocket实现对服务器CPU实时监控

白昼怎懂夜的黑 提交于 2020-08-12 07:32:19
由于WebSocket允许保持长连接,因此当建立连接后服务器可以主动地向Client发送相关信息.下面通过服务端获取当前CPU的使用情况主动发送给网页,让网页实时显示CPU使用情况的曲线图.该事例的主要功能是包括服务端获取CPU使和情况和HTML5使用canvas进行曲线图绘制. 应用效果 实现效果主要是模仿windows的任务管理器,显示每个核的工作情况. C#获取CPU使用情况 可能通过PerformanceCounter来获取具本CPU线程的使用情况,不过在构建PerformanceCounter前先获取到CPU对应的线程数量.获取这个数量可以通过Environment.ProcessorCount属性获取,然后遍历构建每个PerformanceCounter int coreCount = Environment.ProcessorCount; for (int i = 0; i < coreCount; i++) { mCounters.Add(new PerformanceCounter("Processor", "% Processor Time", i.ToString())); } 为了方便计数器的处理,简单地封装了一个基础类,完整代码如下: /// <summary> /// Copyright © henryfan 2012 ///Email:

《 Java 编程思想》CH07 复用类

≡放荡痞女 提交于 2020-02-28 11:15:47
复用代码是 Java 众多引人注目的功能之一。 Java 可以通过创建类来复用代码,要在使用类的时候不破坏现有代码,有两种方式: 组合:在新的类中使用现有类的对象。 继承:按照现有类的类型来创建新类,无需改变现有类的形式,并为其添加新代码。 组合语法 使用组合技术只需要将对象引用置于新类中。 每个非基本类型的对象都有一个 toString() 方法,而且当编译器需要一个 String 而你传入一个对象时, toString() 会被调用。 类中的对象引用会被默认初始化为 null,如果你对其调用任何方法都会抛出异常,但是可以在不抛出异常的情况下,仍然可以打印一个 null 引用 类中对象引用的初始化位置: 在定义对象的地方 在类的构造器中 惰性初始化,即在要使用该对象的地方进行初始化 实例初始化 class Soap { private String s; Soap() { System.out.println("Soup()"); s = "Constructed"; } @Override public String toString() { return s; } } /** * Bath */ public class Bath { private String s1 = "happy", // 在定义处初始化 s2; private Soap soap; private