V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  ipwx  ›  全部回复第 23 页 / 共 194 页
回复总数  3879
1 ... 19  20  21  22  23  24  25  26  27  28 ... 194  
2022-04-06 10:48:02 +08:00
回复了 zzh1ad 创建的主题 程序员 一个奇怪的压缩算法的问题
@sadfQED2 信息论基础不需要单独开课。我们学校记得就是大一的“计算机科学导论”里面有一点相关内容。
2022-04-06 00:17:21 +08:00
回复了 zzh1ad 创建的主题 程序员 一个奇怪的压缩算法的问题
非科班很难理解信息量,不过这里给出一点点小提示:
-----

信息量 = 解码器的信息量 + 编码信息量

而一个具体事物的信息量是固定的。要减少编码后的信息量,就不得不增加解码器的信息量。举个例子,magnet 的种子信息量就只要固定长度的 hash ,压缩率很高对不对?但是如果你把全球所有人的设备都看成是解码器的一部分,你会发现这个解码器的信息量是非常巨大的。换句话说,通过增加解码器的信息量,成功把很多 3GB 的小黄片编码成了几十个字节。

但这种压缩方式还牵扯到另一件事情,哈希冲突。实际上用这种编码方法也无法编码“所有可能的文件”,只不过这套 BT 分布式编码方案只编码“常见的串”(真实出现的小黄片),而不太像正常影片的可能性被抛弃了。这种抛弃造成了解空间全局信息量的巨大下降,使得整个 BT 解码器成为了可能。
2022-04-05 00:46:48 +08:00
回复了 zungmou 创建的主题 Keras 用 keras 搭建出一个判断今天是周几的模型?
@RuiCBai 训练样本分布外

假设训练样本的分布是 p(x),那么现在的大部分训练出来的神经网络在 p(x) 定义域之外的分布上并不能给出有意义的解。
2022-04-05 00:44:48 +08:00
回复了 zungmou 创建的主题 Keras 用 keras 搭建出一个判断今天是周几的模型?
@RuiCBai universal approximation theory 只说了,神经网络能表示任何一个可测集上的连续函数函数,但是不保证你的训练方法能恰好找到这个潜在的函数。大部分情况下训练样本外的数据,现在的神经网络并不保证能给出有意义的解。
2022-04-05 00:42:48 +08:00
回复了 zungmou 创建的主题 Keras 用 keras 搭建出一个判断今天是周几的模型?
@zungmou 你得设置合适的目标函数。。。但反过来这可能又等价于你转换成二进制了。
2022-04-03 23:57:12 +08:00
回复了 zungmou 创建的主题 Keras 用 keras 搭建出一个判断今天是周几的模型?
ps 补充“特征工程”这个论点。

如何用神经网络学习奇偶判定?直接放进去一个数是不行的,因为机器学习模型在这个问题上,任何超出训练集范围的数都是“训练分布外的数据”,不能得到有意义的输出。

正确的方法是比如,转换成二进制,拆成若干 0/1 串。。。。那恭喜你,正确答案就是看最低位的。这个机器学习能学到。但是已经转换成二进制了,那和直接写出奇偶判定的程序,也差别不大了。

当然你也可以转换成四进制、八进制,十进制,六进制。这几个进制对于奇偶判定的问题都比较 easy 。若是转换为三进制、五进制,多看几位应当也能搞定。这就是机器学习和人做奇偶判定程序有区别的地方了,人的话必须先二进制,然后才能给答案,第一步特征工程必须非常精确。但是机器学习的话,稍微有点偏差,给个 X 进制,也能凑合着学出来。所以它比普通的程序算法要稍微“智能”那么一点。
2022-04-03 23:52:42 +08:00
回复了 zungmou 创建的主题 Keras 用 keras 搭建出一个判断今天是周几的模型?
@lizytalk

机器学习不是魔法,需要特征工程。

但是题目中的问题一旦涉及到特征工程,就和朴素的算星期几没有多少差别了。
2022-04-03 01:26:48 +08:00
回复了 MTMT 创建的主题 Python 处理比较大的数据集的时候,单机 spark 会比 pandas 更快吗
我很好奇你的 pandas 写法是啥样子的
2022-04-01 11:42:02 +08:00
回复了 java253738191 创建的主题 程序员 面试题: C++怎么实现热更新内存数据?
@exch4nge 好吧你说的是 atomic_store(&yourData, make_shared<myClass>());

你是对的。我的 lock 做法过了(滑稽)。这可真是个好东西
2022-04-01 11:39:06 +08:00
回复了 java253738191 创建的主题 程序员 面试题: C++怎么实现热更新内存数据?
@exch4nge atomic_load 要自己维护引用计数。

不过你说得对,多线程写同一个 shared_ptr 并不安全。但是多线程读是安全的,因此我们可以这样:

std::shared_ptr<...> yourData;
std::mutex yourDataLock;


// 载入数据的函数
void loadData() {
// 载入
std::shared_ptr<...> newData;
// 更新
{
std::unique_lock<...> lockGuard(yourDataLock);
yourData = newData;
}
}

// 使用数据的函数
void useData() {
std::shared_ptr<...> theData = yourData;
// 使用 yourData
}
2022-03-31 22:17:44 +08:00
回复了 java253738191 创建的主题 程序员 面试题: C++怎么实现热更新内存数据?
// 全局或者某个单例
std::shared_ptr<...> yourData;


// 载入数据的函数
void loadData() {
std::shared_ptr<...> newData;
// 载入
yourData = newData;
}

// 使用数据的函数
void useData() {
std::shared_ptr<...> theData = yourData;
// 使用 yourData
}
2022-03-29 15:13:15 +08:00
回复了 zh584728 创建的主题 科技 为什么我觉得扫地机器人卖 4000+ 真的好贵啊
@fxxkgw 研发不要成本的嘛?
---

身为程序员享受高工资,却不愿意为了别人写的软件掏钱。
2022-03-29 11:36:06 +08:00
回复了 zwnozhuce 创建的主题 互联网 快速出活的能力是否比精通某项技术更重要?
为什么会认为精通某些技术的人不能快速出活?
2022-03-27 15:50:22 +08:00
回复了 atfeel 创建的主题 C# 求助 C#大佬, x86 和 x64 变量转换,苦恼死我了
盲猜你的值其实是 0x251F11 ,打错了
2022-03-27 15:50:11 +08:00
回复了 atfeel 创建的主题 C# 求助 C#大佬, x86 和 x64 变量转换,苦恼死我了
盲猜你的值其实是 0x241F11
2022-03-27 15:44:27 +08:00
回复了 lly8666 创建的主题 宽带症候群 搞不明白,你们为啥喜欢在软路由上用旁路由?
因为翻墙规则再复杂也是不完善的。与其家人遇到哪个视频站卡顿很慢,怀疑是不是翻墙规则不行或者翻墙挂了,还不如从来不让他们用翻墙。。。
@vcfghtyjc 那能不能编译前自动给每个 data structure 都加个判断,除非声明就是要重复引用?
----

编译器其实没那么弱鸡,C 语言的头文件 include 也挺快。C++ 之所以那么慢还是因为生命定义全部放进头文件了,而且全都是超级复杂的模板。meta-programming 你学习一下就知道多强大了,这玩意儿可是编译期就图灵完全的。

相当于你能在代码里写递归、写斐波那契数列、写 whatever 东西,让编译期在编译的时候把结果算出来,而不是在运行的时候算出来。当然,前提是你写得出来。
@vcfghtyjc 编译器不能 cache 一下每个文件的处理结果,遇到相同的文件直接用之前处理好的结果吗?
----

这就是 C++20 module ,但是前提是要承认“一个头文件里面的行为不受它之前 include 的其他头文件影响”。

现在的编译流程不具有这个约定。你八竿子搭不上边的 #define 可以影响到后面 include 的头文件。
@vcfghtyjc 你说对了,源码长度就是很长,而且还很复杂。

纯 C 语言的头文件一般只有声明所以速度相对快,但是 C++ 不同。为了追求 zero-cost abstraction ,C++ 的很多东西声明和定义全部都在头文件里面,而且模板 meta-programming 对于编译器是复杂的东西。这样叠加上去就,超级慢。一个 C++ 源代码文件 include 展开以后有几百上千 KB ,几百上千个 template class ,我觉得毫不意外。每个源文件都给你来这一套,想想多复杂。

C++20 的 module 就是规定,一些头文件不受其他头文件 macro 的影响。这样你就能预编译这些头文件,就不会有那么多重新编译的开销了。

在 C++20 module 前,业界最佳的实践是 Qt ,大量使用 private class + pointer ,尽量避免使用 template ,达到了很好的编译速度。然而,由于使用这两个技术,所以毕竟不是 zero-cost abstraction ,因此在运行速度上是打折了的。当然比起 node.js 还是秒杀。

最后简要介绍 zero-cost abstraction 。这东西看一个例子:

* C 语言的库函数 qsort 要传入一个函数指针。
* C++ 的库函数 std::sort 传入的是模板函数。

函数指针是不能内联优化的,因此每两个元素比较都不得不进行一次函数调用,有固有性能损失。
模板函数是可以内联优化的,相当于消除了这一次函数调用。更何况消除以后 C++ 可以进一步做指令集优化。

所以 C 语言 qsort 比 C++ 慢。
1 ... 19  20  21  22  23  24  25  26  27  28 ... 194  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2481 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 47ms · UTC 08:24 · PVG 16:24 · LAX 01:24 · JFK 04:24
Developed with CodeLauncher
♥ Do have faith in what you're doing.