Because the tutorial only tunes conv2d tasks:
tasks = autotvm.task.extract_from_program(
mod["main"], target=target, params=params, ops=(relay.op.get("nn.conv2d"),)
)
Although I don’t think missing one dense schedule will hurt the performance a lot, you can modify the code to the following to let AutoTVM tune the dense op as well:
tasks = autotvm.task.extract_from_program(
mod["main"], target=target, params=params)
)
When no ops is given, AutoTVM extracts all tasks by default.