Stretch a nylon string extremely tight between the two ends posts.
Nail one little brad on each post at the height where you "think" you want the fence, as a first step.
Stand back, down-line from the rising & dipping string-line, & see if it looks good to you. If it does, you're done!
If it's herky-jerky, rising & falling extremely from one post to the next, adjust the locations of your brads until you're happy with the curve.
You might want to use a marked 5' stick as a guide. Put a mark on it for the absolute lowest you're will to go (closest to the ground that is; i.e. you don't want the bottom board going under ground do you?). Put a 2nd mark on it for the optimum height that you'd like. And put a 3rd mark for the absolute highest you're will to go (i.e. the biggest gap between the bottom rail & the ground that you're willing to live with).
Take that stick & mark all 3 of those marks on every one of your posts.
This will provide you with max & min heights, within which every brad should fall, & keeping your fence boards within a reasonable distance from the ground while allowing you some leeway to raise or lower the boards on each post to achieve a smooth curve.
Warning: Don't cut off your posts until you're sure you're happy with the boards! It's kinda too late once you've cut off the posts, unless you're willing to dig up any that are too short to replace in order to raise your fence in any section(s).
I'm in the middle of doing a bunch of fencing myself, & I think my earlier fencing follows the terrain too closely & looks too herky-jerky; I'm using wire mesh, & I was trying to make it stay close to the ground too much. I figured out the min-max thing later, & my later fencing has smoother curves to it, while not allowing the mesh to get too far above the ground (& never under ground!). Live & learn.