avatar
Articles
37
Tags
9
Categories
7

Home
Archives
Tags
Categories
Link
About
春勃
Home
Archives
Tags
Categories
Link
About

春勃

如何构建高效时序 Keras 数据集:以 tf.data pipeline 分析为例
Created2025-02-14
众所周知,keras 数据集的实现主要依赖于两派: 一派为 keras 提供的数据集相关接口,其中包括已经封装好的几个 toy dataset,还有一些 预处理函数 虽然预处理函数被标成 deprecated,但是貌似函数功能没变,只是被挪了个地方,应该都是进到 keras.utils 里面了 另一派为显式实现 tf.data pipeline 官方推荐用 tf.data 去构建 TensorFlow 输入流水线,更多参考 官方教程 先给一个太长不看的结论: 如果图省事+不需要定制需求的话就用 keras 自带的接口就好 实在想折腾的话建议优先关注 mini-batch 的 batch_size 设置 然后注意向量化运算的利用 问题描述工地上涉及到的数据集是比较客制化的时序数据集,可以描述为下面的场景 输入 X 和 y,以及下标序列 index X 的 shape 为 (num_samples, num_features), y 的 shape 为 num_samples 设置时间序列长度为 sequence_length 对于每个 index 中的元素 i,抽出 (X[ ...
再看交叉熵
Created2024-12-10
虽然作为一个炼丹老手(调包侠),我们肯定知道了在分类问题中,我们一般用交叉熵来刻画两个概率分布之间的“距离”,通过最小化交叉熵(而不是回归问题中的 $p$-范数)来得到能输出最接近目标分布(label)的,输入特征到概率分布的映射 $f_\theta$(又称模型)。那么为什么交叉熵最小化时预测分布能最接近目标分布?最小化交叉熵之后交叉熵的取值应该是怎么样的?现在马上就来水一篇关于这个问题的文章 熵为了热身,我们还是介绍熵(by DeepSeek R1): 给定一个离散的概率分布 $P = \{p_1, p_2, \dots, p_n\}$,其中 $p_i \geq 0$ 且 $\sum_{i = 1}^n p_i = 1$,这个概率分布的熵 $H(P)$ 定义为: H(P) = -\sum_{i=1}^n p_i \log_2(p_i)其中,对数底数通常取 2,表示熵的单位为比特(bit)。如果某些 $p_i$ 为 0,则 $p_i \log_2(p_i)$ 视为 0,因为 $\lim_{x \to 0^+} x \log_2(x) = 0$。 顺便补充一下熵的物理意义(感觉挺玄的 ...
如何将 keras 模型转换成同样的 pytorch 模型
Created2024-10-25
任务描述这个神奇的任务来自于工地上的一个奇葩需求:之前的一些基于 GRU 的 keras 模型需要成等价的 pytorch 模块,要求 模型权重和结构需要保持一致 模型需要嵌入一个更大的模型结构中,作为一个子模块,以进行后续训练 其中样例 GRU 用 keras functional API 构建,模型结构为: 123456789101112131415161718tf.keras.utils.set_random_seed(4396)X = tf.keras.layers.Input(shape=(60, 78), name='factor')x = Xx = tf.keras.layers.GRU(64, return_sequences=True, bias_initializer='glorot_uniform')(x)x = tf.keras.layers.GRU(64, ...
如何科学地在 keras 中构建模型
Created2024-09-20
在 pytorch 中,我们一般通过继承 torch.nn.Module 类来构建模型,将子模块在构造函数 __init__ 中初始化,并在前向传播函数 forward 中,利用先前定义的子模块,定义网络的计算。 但是在 keras 中,事情并没有那么简单。诚然,一般的教程都会以简单的模型来开始;但是我们并不满足于简单的模型,所以会介绍到更复杂的 API。先说结论(太长不看): 简单模块用 Sequential 足矣 稍复杂网络结构用 functional API 构建网络 若非必要,不建议 使用继承类的方式构建网络 注意:以下基于 keras 2.X API 探讨,部分内容可能过于老旧 起手式:Sequential如果是能简单到能串糖葫芦的模型,那么直接用 Sequential 就行了,譬如下面的例子就是把三个线性层串在一起: 1234567891011121314import kerasfrom keras import layers# Define Sequential model with 3 layersmodel = keras.Sequential( [ ...
CryptoCTF 2024 tough 分类 团队解题 writeup
Created2024-06-18|CTFCrypto
这次 tough 分类配合得不是很好,最后一个解方程的题目想复杂了,被他的题目设置有点弄晕了,所以到结束的时候都没有做出来。配合得不是很好~ Capac题目描述题目基于某一种神奇的曲线: x^3 + c y^3 + c^2 z^3 - 3 c x y z = 1其中,如果 $z=0$ 的话(也就是题目的生成点 $G$ 满足的条件),$c = (1-x^3) / y^3$。 事实上,上面那个结论就是把 $z=0$ 代入到曲线定义式上面化简得到 然后定义点 $P(x_1, y_1, z_1)$ 和 $Q(x_2, y_2, z_2)$ 的加法:记 $R(x_3, y_3, z_3)=P+Q$,则 x_3 = x_1x_2 + c (y_1z_2 + y_2 z_1)y_3 = x_2y_1 + x_1y_2 + cz_1z_2z_3 = y_1y_2 + x_2z_1 + x_1z_2已知 $n = p^4 q^6$,$P(m_1, m_2, 0)$,计算 $Q=eP$。已知点 $Q$ 的坐标以及 $e$ 的值,求 $m_1, m_2$。 我的解答所以关键在于,求出该曲线的阶。 经过一些尝 ...
CryptoCTF 2024 easy 分类 团队解题 writeup
Created2024-06-18|CTFCrypto
这次 easy 分类比赛的时候我当时看了一道 MD5 的,结果感觉很谜语,就没去仔细看了。要懂得把球传给队友 那么赛后就复盘一下 Alibos题目描述私钥 $s_k$ 为 $d_s$ 位十进制数,公钥 $p_k$ 可被写成如下形式: p_k = \lfloor 10^{d_s} \left( \sqrt{s_k} - \lfloor \sqrt{s_k} \rfloor \right) \rfloor记 $p_k$ 为 $d_p$ 位十进制数 加密算法: 在 $m$ 的十进制表示中在右边加上很多个 1,使其成为 $d_p$ 位十进制数; 计算 c = \left( p_k + d_p^2 m \right) \bmod 10^{d_p} 给出 $p_k$ 和 $c$,试求 $m$。 我的解答首先可以求出 $d_p$ 的值,然后直接求出 $m$ 的值即可: m = \left( c - p_k \right) d_p^{-2} \bmod 10^{d_p}代码如下: 123456789from Crypto.Util.number import *pkey = 85824355125 ...
CryptoCTF 2024 hard 分类 团队解题 writeup 之一
Created2024-06-18|CTFCrypto
这次 hard 分类的题目难道是碳基生物能整出来的活儿??? Chochol题目描述题目基于 ECC: E: y^2 = x^3 + ax + b128bit 素数 $p$ 和 $q$ 均满足 $p \equiv q \equiv 3 \pmod{4}$,$a$ 取随机,$b = 0$。 $E_p$ 和 $E_q$ 分别是 $E$ 在 $GF(p)$ 和 $GF(q)$ 下的情形。 生成元 $G_p$ 和 $G_q$ 的横坐标均为 2024。(MAN!) 然后有一个未知的 $s$,$H_p = s G_p$,$H_q = s G_q$ 题目对明文的加密采用 RSA: n = pqc = m^s \bmod n已知 $G_p, H_p, G_q, H_q, c$,求 $m$ 我的解答首先是求出 $a, p, q$ 这三个值。以 $p$ 为例,将 $G_p(x_1, y_1)$ 和 $H_p(x_2, y_2)$ 代入椭圆曲线方程: \left\{\begin{aligned}y_1^2 = x_1^3 + a x_1 \\ y_2^2 = x_2^3 + a x_2\end{aligne ...
CryptoCTF 2024 hard 分类 团队解题 writeup 之二
Created2024-06-18|CTFCrypto
这次 hard 分类的题目难道是碳基生物能整出来的活儿??? O7R题目描述题目基于 RSA 和七!段!数!码!管! 题目给出了 $p, q, n, n^2$ 的七段数码管的 损坏形式,以及密文 $c$ 的七段数码管形式,其中一个数的七段数码管的损坏形式被定义为:这个七段数码管的每一位数都会以 50%的概率,某一段数码管本来要亮的,结果没亮了,如下就是一个数位 7 损坏了一个数码管的例子: 123456789 xxxx xxxxo x o oo x o oo x o o oooo -> oooo o x o xo x o xo x o x oooo oooo 题目没说 $e$ 是多少(可能要靠猜,譬如 $e=65537$),求明文 $m$。 我的解答当时比赛的时候,我没看这道题,未央、三顺七、苏氨酸当时还就被这个男的女的折磨,多捞哦! 这尼玛是碳基生物整得出的活儿? 首先得把他那个七段数码管切成数,至少转换成七段数 ...
CryptoCTF 2024 medium 分类 团队解题 writeup 之一
Created2024-06-18|CTFCrypto
这次 medium 分类题量还是最多的,结果一开始里面很多题都不可解,甚至比赛结束了还 TMD 有一道零解。 我去年买了个表 Ahoo题目描述给定整数 $n$,找最小正整数 $c$ 使得 $nc$ 的二进制表示中 1 的个数最小。 我的解答这种问题看上去没有一个比较直观的解。一开始在想是不是要找 $k$ 使得 $n$ 为 $2^k+1$ 的约数,后面发现这个数应该不是所有的数都能找得出来的。这种时候就要学会 站在巨人的肩膀上了 记 $f(n)$ 为题目的答案,先写一个简单的脚(da)本(biao)得出 $f(n)$ 的前几项: 12345678910111213results = []for n in range(1, 15): min_c = 0 min_ones = 4396 for c in range(1, 200000): ones = sum(map(int, f'{n*c:b}')) if ones < min_ones: min_ones = ones ...
CryptoCTF 2024 medium 分类 团队解题 writeup 之二
Created2024-06-18|CTFCrypto
这次 medium 分类题量还是最多的,结果一开始里面很多题都不可解,甚至比赛结束了还 TMD 有一道零解。 我去年买了个表 Duzly (x)题目描述已知 $p=2^{64} - 59$,下面的运算都在 $\mathbb{Z}/p\mathbb{Z}$ 中讨论。 已知 $c_1, c_2, \ldots, c_6$ 的值,且 $c_1 = 1$ 已知 $e_1 = 2^{24} + 17, e_2 = 2^{24} + 3, e_3=3, e_4=2, e_5 = 1, e_6 = 0$ 明文 $m$ 首先左右都被 pad 了随机长度的随机 bytes,然后被分成 8 个字节一组 $m_i$。已知 $h_i = \sum_{j=1}^{6}{c_j m_i^{e_j}}$,求 $m_i$ 我的乱想这尼玛可做? 一个想法就是找一些不变量,通过一些手法把部分和的结果变到一个阶小的子群里面去,从而把原问题转换成某个多项式加上某个定值的形式,这样或许能缩小解的范围。 譬如将 $f(x) = \sum_{j=1}^{6}{c_j x^{e_j}}$ 拆分成 $g(x) + h(x)$,然后如果 ...
12…4
avatar
ZM-J
丧失年轻,勿失年华
Articles
37
Tags
9
Categories
7
信春哥
Announcement
春哥纯爷们,铁血真汉子。人民好兄弟,父亲好儿子。拳上能站人,臂上能走马!夜御十女枪不倒,菊花百战色仍红!
Recent Post
如何构建高效时序 Keras 数据集:以 tf.data pipeline 分析为例2025-02-14
再看交叉熵2024-12-10
如何将 keras 模型转换成同样的 pytorch 模型2024-10-25
如何科学地在 keras 中构建模型2024-09-20
CryptoCTF 2024 tough 分类 团队解题 writeup2024-06-18
Categories
  • AI9
    • 强化学习9
  • CTF18
    • Crypto18
  • English1
  • 工地随笔3
  • 臊皮1
Tags
tensorflow 进程同步 Crypto keras 深度学习 操作系统 CTF AI pytorch
Archives
  • February 20251
  • December 20241
  • October 20241
  • September 20241
  • June 20249
  • April 20241
  • March 20241
  • February 20242
Info
Article :
37
UV :
PV :
Last Update :
©2020 - 2025 By ZM-J
Framework Hexo|Theme Butterfly