A woman was attacked by a homeless sex offender inside a public bathroom at a park in Seattle on Sunday afternoon.

Police said the attack and attempted rape happened at Golden Gardens Park.

>> Read more trending stories

Officers said 40-year-old Gary Steiner punched the victim, Kelly Herron, in the face nearly half a dozen times, wrestled her to the ground, and pulled at her pants.

Herron said she was marathon training that afternoon when she decided to use the restroom. The suspect was hiding out in one of the stalls and attacked her from behind while she was washing her hands.

"(I) was cornered," she said. "We’re down on the ground...I was clawing his face and screaming at him."

They wrestled and Herron rolled into the next stall, jamming the door shut with her leg.

"Then I thought, once I got under here, I would be safe," she said.

But Steiner followed her.

"(He was) beating me up and I was able to pull myself. I was on my back, I pulled myself out this way. That’s when I took the worst blow to the head and came out this way," she added.

Herron said she had taken a two-hour self-defense class and that it saved her life.

"Time stopped, I went through everything we learned in self-defense," she said. "I was screaming, hitting him with the side of my hand, scratching his face, telling him that he was not gonna get me today, screaming I was gonna kill him, and I just never stopped fighting," Herron said.

"I was screaming at him, 'Not today (expletive)'...letting him know, 'You are not taking me down today. You are not going to win this fight.'"

Herron said that was what motivated her. She said she does not want to be called a victim.

"We don’t have to go down. We don’t have to be quiet about it."

Records show Steiner has attacked before. Police said days before this incident, a warrant was issued for Steiner’s arrest due to his failure to register as a sex offender in Clark County, Washington.

The Clark County Sheriff’s Office lists Steiner as a Transient Level III Sex Offender, the level most likely to reoffend.

In 1999 he was charged with three counts of sexual abuse for attacking several women in Maricopa County, Arizona. Nine years later, he was charged with indecent exposure.

Police said they don’t know when or why Steiner came to Seattle. He was booked into the King County Jail on attempted rape and assault charges.

Herron didn't know about Steiner’s extensive criminal history.

"I’m processing all of it," she said. "I’m really grateful I survived."