[
  {
    "lesson": 1,
    "exit_code": 1,
    "stdout": "",
    "stderr": "Traceback (most recent call last):\n  File \"/Users/saymagic/workspace/chinese-poetry/lessons/01/starter.py\", line 12, in <module>\n    assert solve(True,False)=='mps'\n           ^^^^^^^^^^^^^^^^^\n  File \"/Users/saymagic/workspace/chinese-poetry/lessons/01/starter.py\", line 10, in solve\n    raise NotImplementedError(\"请补全：选择可用设备；参考答案见 solution.py\")\nNotImplementedError: 请补全：选择可用设备；参考答案见 solution.py\n"
  },
  {
    "lesson": 2,
    "exit_code": 1,
    "stdout": "",
    "stderr": "Traceback (most recent call last):\n  File \"/Users/saymagic/workspace/chinese-poetry/lessons/02/starter.py\", line 12, in <module>\n    assert solve({'paragraphs':['春风，','明月。']})=='春风，明月。'\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/Users/saymagic/workspace/chinese-poetry/lessons/02/starter.py\", line 10, in solve\n    raise NotImplementedError(\"请补全：读取正文；参考答案见 solution.py\")\nNotImplementedError: 请补全：读取正文；参考答案见 solution.py\n"
  },
  {
    "lesson": 3,
    "exit_code": 1,
    "stdout": "",
    "stderr": "Traceback (most recent call last):\n  File \"/Users/saymagic/workspace/chinese-poetry/lessons/03/starter.py\", line 12, in <module>\n    assert solve(['春江花月夜']*4)\n           ^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/Users/saymagic/workspace/chinese-poetry/lessons/03/starter.py\", line 10, in solve\n    raise NotImplementedError(\"请补全：筛选四句五七言；参考答案见 solution.py\")\nNotImplementedError: 请补全：筛选四句五七言；参考答案见 solution.py\n"
  },
  {
    "lesson": 4,
    "exit_code": 1,
    "stdout": "",
    "stderr": "Traceback (most recent call last):\n  File \"/Users/saymagic/workspace/chinese-poetry/lessons/04/starter.py\", line 12, in <module>\n    assert solve([1,2,3,4])==([1,2,3],[2,3,4])\n           ^^^^^^^^^^^^^^^^\n  File \"/Users/saymagic/workspace/chinese-poetry/lessons/04/starter.py\", line 10, in solve\n    raise NotImplementedError(\"请补全：把目标右移一位；参考答案见 solution.py\")\nNotImplementedError: 请补全：把目标右移一位；参考答案见 solution.py\n"
  },
  {
    "lesson": 5,
    "exit_code": 1,
    "stdout": "",
    "stderr": "Traceback (most recent call last):\n  File \"/Users/saymagic/workspace/chinese-poetry/lessons/05/starter.py\", line 12, in <module>\n    torch.testing.assert_close(solve(torch.tensor([[2.,3.]]),torch.tensor([[1.,0.],[0.,2.]])),torch.tensor([[2.,6.]]))\n                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/Users/saymagic/workspace/chinese-poetry/lessons/05/starter.py\", line 10, in solve\n    raise NotImplementedError(\"请补全：变换每个位置的表示；参考答案见 solution.py\")\nNotImplementedError: 请补全：变换每个位置的表示；参考答案见 solution.py\n"
  },
  {
    "lesson": 6,
    "exit_code": 1,
    "stdout": "",
    "stderr": "Traceback (most recent call last):\n  File \"/Users/saymagic/workspace/chinese-poetry/lessons/06/starter.py\", line 12, in <module>\n    assert abs(solve(torch.tensor([[2.,1.,0.]]),torch.tensor([0])).item()-0.40760595)<1e-6\n               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/Users/saymagic/workspace/chinese-poetry/lessons/06/starter.py\", line 10, in solve\n    raise NotImplementedError(\"请补全：给正确字评分；参考答案见 solution.py\")\nNotImplementedError: 请补全：给正确字评分；参考答案见 solution.py\n"
  },
  {
    "lesson": 7,
    "exit_code": 1,
    "stdout": "",
    "stderr": "Traceback (most recent call last):\n  File \"/Users/saymagic/workspace/chinese-poetry/lessons/07/starter.py\", line 12, in <module>\n    assert abs(solve(0.,-6.,.2)-1.2)<1e-9\n               ^^^^^^^^^^^^^^^^\n  File \"/Users/saymagic/workspace/chinese-poetry/lessons/07/starter.py\", line 10, in solve\n    raise NotImplementedError(\"请补全：根据梯度更新一次；参考答案见 solution.py\")\nNotImplementedError: 请补全：根据梯度更新一次；参考答案见 solution.py\n"
  },
  {
    "lesson": 8,
    "exit_code": 1,
    "stdout": "",
    "stderr": "Traceback (most recent call last):\n  File \"/Users/saymagic/workspace/chinese-poetry/lessons/08/starter.py\", line 13, in <module>\n    y=solve(table,torch.tensor([1,2,1]))\n      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/Users/saymagic/workspace/chinese-poetry/lessons/08/starter.py\", line 10, in solve\n    raise NotImplementedError(\"请补全：按编号查行；参考答案见 solution.py\")\nNotImplementedError: 请补全：按编号查行；参考答案见 solution.py\n"
  },
  {
    "lesson": 9,
    "exit_code": 1,
    "stdout": "",
    "stderr": "Traceback (most recent call last):\n  File \"/Users/saymagic/workspace/chinese-poetry/lessons/09/starter.py\", line 13, in <module>\n    y=solve(x,p)\n      ^^^^^^^^^^\n  File \"/Users/saymagic/workspace/chinese-poetry/lessons/09/starter.py\", line 10, in solve\n    raise NotImplementedError(\"请补全：加入位置信息；参考答案见 solution.py\")\nNotImplementedError: 请补全：加入位置信息；参考答案见 solution.py\n"
  },
  {
    "lesson": 10,
    "exit_code": 1,
    "stdout": "",
    "stderr": "Traceback (most recent call last):\n  File \"/Users/saymagic/workspace/chinese-poetry/lessons/10/starter.py\", line 12, in <module>\n    y=solve(torch.zeros(3),torch.tensor([[1.,0.],[0.,2.],[2.,2.]]))\n      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/Users/saymagic/workspace/chinese-poetry/lessons/10/starter.py\", line 10, in solve\n    raise NotImplementedError(\"请补全：按权重汇总；参考答案见 solution.py\")\nNotImplementedError: 请补全：按权重汇总；参考答案见 solution.py\n"
  },
  {
    "lesson": 11,
    "exit_code": 1,
    "stdout": "",
    "stderr": "Traceback (most recent call last):\n  File \"/Users/saymagic/workspace/chinese-poetry/lessons/11/starter.py\", line 13, in <module>\n    a,b,c=solve(x,x,2*x,3*x)\n          ^^^^^^^^^^^^^^^^^^\n  File \"/Users/saymagic/workspace/chinese-poetry/lessons/11/starter.py\", line 10, in solve\n    raise NotImplementedError(\"请补全：计算三组表示；参考答案见 solution.py\")\nNotImplementedError: 请补全：计算三组表示；参考答案见 solution.py\n"
  },
  {
    "lesson": 12,
    "exit_code": 1,
    "stdout": "",
    "stderr": "Traceback (most recent call last):\n  File \"/Users/saymagic/workspace/chinese-poetry/lessons/12/starter.py\", line 12, in <module>\n    w=solve(torch.zeros(3,3))\n      ^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/Users/saymagic/workspace/chinese-poetry/lessons/12/starter.py\", line 10, in solve\n    raise NotImplementedError(\"请补全：在归一化前遮挡未来；参考答案见 solution.py\")\nNotImplementedError: 请补全：在归一化前遮挡未来；参考答案见 solution.py\n"
  },
  {
    "lesson": 13,
    "exit_code": 1,
    "stdout": "",
    "stderr": "Traceback (most recent call last):\n  File \"/Users/saymagic/workspace/chinese-poetry/lessons/13/starter.py\", line 13, in <module>\n    y=solve(x,2)\n      ^^^^^^^^^^\n  File \"/Users/saymagic/workspace/chinese-poetry/lessons/13/starter.py\", line 10, in solve\n    raise NotImplementedError(\"请补全：把表示分成多个头；参考答案见 solution.py\")\nNotImplementedError: 请补全：把表示分成多个头；参考答案见 solution.py\n"
  },
  {
    "lesson": 14,
    "exit_code": 1,
    "stdout": "",
    "stderr": "Traceback (most recent call last):\n  File \"/Users/saymagic/workspace/chinese-poetry/lessons/14/starter.py\", line 13, in <module>\n    torch.testing.assert_close(solve(x,lambda x:x*.1),torch.tensor([1.1,2.2]))\n                               ^^^^^^^^^^^^^^^^^^^^^^\n  File \"/Users/saymagic/workspace/chinese-poetry/lessons/14/starter.py\", line 10, in solve\n    raise NotImplementedError(\"请补全：保留残差通路；参考答案见 solution.py\")\nNotImplementedError: 请补全：保留残差通路；参考答案见 solution.py\n"
  },
  {
    "lesson": 15,
    "exit_code": 1,
    "stdout": "",
    "stderr": "Traceback (most recent call last):\n  File \"/Users/saymagic/workspace/chinese-poetry/lessons/15/starter.py\", line 16, in <module>\n    y=solve(tokens,characters,positions,blocks,norm,output)\n      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/Users/saymagic/workspace/chinese-poetry/lessons/15/starter.py\", line 10, in solve\n    raise NotImplementedError(\"请补全：串联 GPT 的计算；参考答案见 solution.py\")\nNotImplementedError: 请补全：串联 GPT 的计算；参考答案见 solution.py\n"
  },
  {
    "lesson": 16,
    "exit_code": 1,
    "stdout": "",
    "stderr": "Traceback (most recent call last):\n  File \"/Users/saymagic/workspace/chinese-poetry/lessons/16/starter.py\", line 15, in <module>\n    solve(model,optimizer,x,y)\n  File \"/Users/saymagic/workspace/chinese-poetry/lessons/16/starter.py\", line 10, in solve\n    raise NotImplementedError(\"请补全：执行一次训练更新；参考答案见 solution.py\")\nNotImplementedError: 请补全：执行一次训练更新；参考答案见 solution.py\n"
  },
  {
    "lesson": 17,
    "exit_code": 1,
    "stdout": "",
    "stderr": "Traceback (most recent call last):\n  File \"/Users/saymagic/workspace/chinese-poetry/lessons/17/starter.py\", line 12, in <module>\n    assert abs(solve(1,1000,100)-.01)<1e-9\n               ^^^^^^^^^^^^^^^^^\n  File \"/Users/saymagic/workspace/chinese-poetry/lessons/17/starter.py\", line 10, in solve\n    raise NotImplementedError(\"请补全：实现预热与逐渐减小；参考答案见 solution.py\")\nNotImplementedError: 请补全：实现预热与逐渐减小；参考答案见 solution.py\n"
  },
  {
    "lesson": 18,
    "exit_code": 1,
    "stdout": "",
    "stderr": "Traceback (most recent call last):\n  File \"/Users/saymagic/workspace/chinese-poetry/lessons/18/starter.py\", line 13, in <module>\n    assert torch.equal(solve(source)['weight'],source['weight'])\n                       ^^^^^^^^^^^^^\n  File \"/Users/saymagic/workspace/chinese-poetry/lessons/18/starter.py\", line 10, in solve\n    raise NotImplementedError(\"请补全：保存并还原参数字典；参考答案见 solution.py\")\nNotImplementedError: 请补全：保存并还原参数字典；参考答案见 solution.py\n"
  },
  {
    "lesson": 19,
    "exit_code": 1,
    "stdout": "",
    "stderr": "Traceback (most recent call last):\n  File \"/Users/saymagic/workspace/chinese-poetry/lessons/19/starter.py\", line 12, in <module>\n    assert solve(4.1,4.2)\n           ^^^^^^^^^^^^^^\n  File \"/Users/saymagic/workspace/chinese-poetry/lessons/19/starter.py\", line 10, in solve\n    raise NotImplementedError(\"请补全：按验证成绩选最佳版本；参考答案见 solution.py\")\nNotImplementedError: 请补全：按验证成绩选最佳版本；参考答案见 solution.py\n"
  },
  {
    "lesson": 20,
    "exit_code": 1,
    "stdout": "",
    "stderr": "Traceback (most recent call last):\n  File \"/Users/saymagic/workspace/chinese-poetry/lessons/20/starter.py\", line 13, in <module>\n    a=solve(x,.5);b=solve(x,1.)\n      ^^^^^^^^^^^\n  File \"/Users/saymagic/workspace/chinese-poetry/lessons/20/starter.py\", line 10, in solve\n    raise NotImplementedError(\"请补全：调节候选分布；参考答案见 solution.py\")\nNotImplementedError: 请补全：调节候选分布；参考答案见 solution.py\n"
  },
  {
    "lesson": 21,
    "exit_code": 1,
    "stdout": "",
    "stderr": "Traceback (most recent call last):\n  File \"/Users/saymagic/workspace/chinese-poetry/lessons/21/starter.py\", line 12, in <module>\n    lines=solve('春江花月夜'*4,5)\n          ^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/Users/saymagic/workspace/chinese-poetry/lessons/21/starter.py\", line 10, in solve\n    raise NotImplementedError(\"请补全：为四句放入标点；参考答案见 solution.py\")\nNotImplementedError: 请补全：为四句放入标点；参考答案见 solution.py\n"
  },
  {
    "lesson": 22,
    "exit_code": 1,
    "stdout": "",
    "stderr": "Traceback (most recent call last):\n  File \"/Users/saymagic/workspace/chinese-poetry/lessons/22/starter.py\", line 12, in <module>\n    assert solve('明月照归舟',['明月','故乡','明月'])==['明月']\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/Users/saymagic/workspace/chinese-poetry/lessons/22/starter.py\", line 10, in solve\n    raise NotImplementedError(\"请补全：提取正文真的出现的词；参考答案见 solution.py\")\nNotImplementedError: 请补全：提取正文真的出现的词；参考答案见 solution.py\n"
  },
  {
    "lesson": 23,
    "exit_code": 1,
    "stdout": "",
    "stderr": "Traceback (most recent call last):\n  File \"/Users/saymagic/workspace/chinese-poetry/lessons/23/starter.py\", line 12, in <module>\n    assert solve(['春风归，','明月回。','江水流，','故人归。'])==1\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/Users/saymagic/workspace/chinese-poetry/lessons/23/starter.py\", line 10, in solve\n    raise NotImplementedError(\"请补全：检查重复的句尾；参考答案见 solution.py\")\nNotImplementedError: 请补全：检查重复的句尾；参考答案见 solution.py\n"
  },
  {
    "lesson": 24,
    "exit_code": 1,
    "stdout": "",
    "stderr": "Traceback (most recent call last):\n  File \"/Users/saymagic/workspace/chinese-poetry/lessons/24/starter.py\", line 12, in <module>\n    a=solve(['--start','春','--form','seven'])\n      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/Users/saymagic/workspace/chinese-poetry/lessons/24/starter.py\", line 10, in solve\n    raise NotImplementedError(\"请补全：解析一个命令参数；参考答案见 solution.py\")\nNotImplementedError: 请补全：解析一个命令参数；参考答案见 solution.py\n"
  },
  {
    "lesson": 25,
    "exit_code": 1,
    "stdout": "",
    "stderr": "Traceback (most recent call last):\n  File \"/Users/saymagic/workspace/chinese-poetry/lessons/25/starter.py\", line 12, in <module>\n    assert solve({'a'},{'b'},{'c'})\n           ^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/Users/saymagic/workspace/chinese-poetry/lessons/25/starter.py\", line 10, in solve\n    raise NotImplementedError(\"请补全：检查三份材料是否串卷；参考答案见 solution.py\")\nNotImplementedError: 请补全：检查三份材料是否串卷；参考答案见 solution.py\n"
  },
  {
    "lesson": 26,
    "exit_code": 1,
    "stdout": "",
    "stderr": "Traceback (most recent call last):\n  File \"/Users/saymagic/workspace/chinese-poetry/lessons/26/starter.py\", line 13, in <module>\n    assert solve(model)==8\n           ^^^^^^^^^^^^\n  File \"/Users/saymagic/workspace/chinese-poetry/lessons/26/starter.py\", line 10, in solve\n    raise NotImplementedError(\"请补全：统计真正独立的参数；参考答案见 solution.py\")\nNotImplementedError: 请补全：统计真正独立的参数；参考答案见 solution.py\n"
  }
]
