# How is the shape of the anchor boxes predefined in YOLO algorithm?

I am not sure if I really understand how anchor boxes are defined. As far as I understand, in YOLO algorithm you define a set of "good" shapes (anchor boxes) that may contain the object you are trying to detect for each cell.

However, I don't really understand how do you predefine the shape of these anchor boxes. As far as I have seen, there are examples in which the algorithm outputs bx, by, bh and bw values for each anchor box. Are you actually giving "freedom" to the algorithm to define these four values, or somehow is it being defined a fixed ratio between bh and bw for each of the anchor boxes? And how is this ratio defined in the output?