反馈

我们在一万年前的 第 24 节 高阶圣堂法师 中提到过如何进阶

其实除了魔法的提升以外, Senior 还有一项神奇的技能

——反馈

此法先予以对方肯定(pengsha)
然后委婉指出有待加强的地方(quedian)
最终达到把对方的法力值清零的效果


纵观小法师几个较 Senior 的盆友们
也是拖拖拖拖拖拖拖拖拖拖拖拖拖拖拖拖拖拖拖到死线 来临
才会施展此法

这么看来,反馈确实属于一项高阶技能

可惜我们的小法师处于并且长期处于 Junior 阶段

再加上如下两项原因:

  1. 垃圾口语
  2. 社交恐惧

反馈便成了小法师无法逾越的障碍


某天下午小法师正在发愁死线疯狂的摄入咖啡
在咖啡因的作用下,突发奇想
虽然自己比较弱
但也不代表完全无法召唤神龙

比如 炼丹术(shenduxuexi) 里的 RNN 就非常适合现在的情况

炼丹

说到炼丹,最早还挺神秘兮兮的
只有少部分法师了解其中的奥秘

小法师在不明真相的情况下
刷掉了 Andrew Ng 在 Coursera 的 ML 课程并且买了证书 📄 以示清白
虽然早就忘光了,但还是多多少少有些概念

并且如今已经 9012 年了
已经简化到只要无脑准备材料就可以

1
2
3
mkdir feedback
cd feedback
mkdir -p datasets weights outputs

小法师先搜了下,发现了 phrases examples

就无脑把内容 Copy 到 datasets/data.txt

然后过滤出 正反馈 和 负反馈

1
2
3
4
cd datasets

cat data.txt | grep ✓ | sed 's/✓ //' > 👍.txt
cat data.txt | grep ✗ | sed 's/✗ //' > 👎.txt

材料准备好后,就可以搭丹炉了

小法师找了下,感觉 textgenrnn 不错,简单易懂

1
2
cd ..
pip3 install -I textgenrnn tensorflow

设置好炼丹步骤

开炼

1
2
3
4
5
6
7
8
9
10
# python3 training.py
from textgenrnn import textgenrnn

textgen = textgenrnn()

textgen.train_from_file('datasets/👍.txt', num_epochs=1)
textgen.save('weights/👍.hdf5')

textgen.train_from_file('datasets/👎.txt', num_epochs=1)
textgen.save('weights/👎.hdf5')

然后小法师的 MBP 的 CPU 疯转,迸出了欢乐的花火 🎆

1
2
3
4
Instructions for updating:
Use tf.where in 2.0, which has the same broadcast rule as np.where
Epoch 1/1
328/559 [================>.............] - ETA: 36s - loss: 1.2788

载入练好的 🥚 看看

1
2
3
4
5
6
7
8
# python3 testing.py
from textgenrnn import textgenrnn

print('👍')
textgenrnn('weights/👍.hdf5').generate_samples(prefix="He")

print('👎')
textgenrnn('weights/👎.hdf5').generate_samples(prefix="He")

emmmmmmmmmmmm

然鹅 结果十分辣眼睛 💔💔💔


计划不通

没有继续实验
但增加 epochs 或 layers 或许会有提高

Repo: Feedback

但:

肯定是数据量不够

小法师斩钉截铁的说到

😠😠😠