<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def check_length_of_init_values(design_3d, init_values):
 """ Ensures that the initial values are of the correct length, given the design matrix that they will be dot-producted with. Raises a ValueError if that is not the case, and provides a useful error message to users. Parameters init_values : 1D ndarray. 1D numpy array of the initial values to start the optimizatin process with. There should be one value for each index coefficient being estimated. design_3d : 2D ndarray. 2D numpy array with one row per observation per available alternative. There should be one column per index coefficient being estimated. All elements should be ints, floats, or longs. Returns ------- None. """

    if init_values.shape[0] != design_3d.shape[2]:
        msg_1 = "The initial values are of the wrong dimension. "
        msg_2 = "They should be of dimension {}".format(design_3d.shape[2])
        raise ValueError(msg_1 + msg_2)

    return None