#I should have also added Perona
Explore tagged Tumblr posts
Text
Loki really is the princess of the arc, isn't he?




#I should have also added Perona#she is the “ghost princess” after all#loki one piece#one piece loki#loki op#shirahoshi#one piece shirahoshi#riku rebecca#one piece rebecca#vinsmoke reiju#one piece
302 notes
·
View notes
Text
Roronoa Zoro X CisFem Reader
10.5
"Is F/N ok?" Nami asked entering the house between Luffy and Zoro.
"Why wouldn't she be?" Luffy turned as she slipped her phone back into her pocket.
"Well Robin just text me that Perona said she and Law broke up."
"What?" Ace, Sabo and Al croaked from the sofa.
"I guess she overhead a conversation with Shanks down at the bar." Nami shrugged sharing the armchair with the youngest brother.
"It's already late and she's with Shanks, this probably won't end well." Sabo murmured checking the time on his phone.
"What does that mean?" Zoro asked claiming the recliner.
"Those two tend to go on benders when they are together." Ace answered.
Zoro's phone whistled in his pocket, a text.
F/N : sitpploo
F/N : Zooorooooooo*
Zoro : drinking i see
F/N : wah says who?!
Zoro : those texts for one.
Zoro : Also Perona reported to her girlfriend
F/N : how rode
F/N : rude*
F/N : just blowing off steam
Zoro : i heard about that also
F/N : God damn. People need to mine their own shit
F/N : min*
F/N : ugh Mind!
Zoro : lol maybe you should have some water
F/N : water
F/N : not fun
F/N : hey... HeeeeEEeeY
Zoro : send a single sentence woman.
F/N : demandinf much?! Anyway! Co.e drink with me I hear you're some sort of fish
Zoro : fish?
F/N : yeah yeah.. Ya know the saying? Like he drinks like a fish.
F/N : fish is Zoro
Zoro : where are you guys?
F/N : ah well Shanks left, Yasopp disappeared and Benn is threatening to leave. But I'm at the redline
"I gotta head out." Zoro stood abruptly pocketing his phone.
"Uh ok." Ace glanced up at him.
"We'll see you Saturday." Sabo added as he reached the door.
"Yup, see ya."
Nami and Al shared a look before Nami pulled out her phone to shoot Robin and Perona a text.
When Zoro arrived at the bar it was closing and you were clinging to Benn near the door.
"We can just share the uber and you can pay for the rest of the ride."
"Benny," you slurred brows knit, face twisted into an adorable pout, "don't ya know ya can't leave a drunk girl alone in a stranger's car?"
"I can just take you." Zoro interrupted.
"Greenie!" you cheered throwing your arms around his neck.
"Problem solved. No drunk girl in a stranger's car." Benn mocked pinching your cheek.
"Who's drunk?!" you called.
"Have fun with that." Benn said to Zoro while ruffling your hair.
"Hey!" you protested, "What's that mean?"
"Don't worry about it." Zoro suppressed his laughter.
He had seen you this drunk before at your welcome home party and like before he found you quite amusing.
"Let's get you home." he placed his hand on the small of your back to guide you forward.
"Nooo...whaaat? Do we have to go home?" you whined leaning into him to keep yourself upright.
"F/N, it's almost two. There's no where else to go." he opened the passenger door for you.
"We could go to your place." you suggested glancing up at him with rosy cheeks.
He flushed hard.
"Wait!" you stepped back throwing your hands against his chest, "N-not like that! I-I mean to keep drinking. I just don't wanna go home yet."
Zoro quickly regained his composure and hoisted you into the truck, "That's fine but all I have is saké."
"I looooove saké!" you cheered fumbling with the seatbelt.
He closed the door and rounded the truck shaking his head. You were definitely a handful. When he climbed into the drivers seat you were still talking.
"You know we have an office in Japan? The saké is better there."
"You worked in Japan?" he asked.
"No I ran London, but I've been a few times." you paused and gasped startling the greenette, "We should go!"
"Go where?"
"Japan!" you grabbed his arm enthusiastically.
"Sure." he snorted.
"And you can see a real dojo that's like hundreds of years old."
He peeked at you sideways at the stoplight as you continued making travel plans you'd never remember. You quieted down realizing you were being stared at.
"I'm serious."
He chuckled at your pouty tone, "I can see that. Maybe we'll revisit the subject when you're sober."
"I'm not that dr-unk!" you hiccupped.
He laughed again.
"Bad timing!" you playfully slapped his arm.
"Stop yelling woman." he covered your mouth with his right hand.
"Sorry." you muttered against his palm sending a shiver through him.
He quickly retacted his hand and made the turn into the apartment complex.
"We'll just have a couple. You're drunk enough." he placed two small white cups on the coffee table in front of you and turned back toward the small kitchen.
"I'm fiiiine." you giggled pulling your legs up onto the leather sofa.
"Sure." he agreed returning with a chilled bottle.
"You don't drink it warm?"
"Normally yes but this is plum, it's better cold." he took a seat on the floor across from you.
You tilted your head.
"What?" he asked removing the cap and filling the cups.
"You don't seem like the kind of guy who likes sweet drinks."
"I'm not but this was a gift and you like sweet drinks so why not?"
You flushed briefly that he knew your preference forgetting in your haze that he had served you before you knew him. Zoro pushed your cup across the table and watched you concentrate on picking it up without spilling.
How was every face you made so cute?
Slowly you leaned forward with your cup out in front of you. Zoro did the same tapping the lip of his cup to yours.
"Kanpai!" you cheered bringing the sweet liquid to your lips.
He mirrored you and downed the cold drink. It was surprisingly good. Not too sweet with a pleasant plum aftertaste. You set your cup down near the bottle indicating you'd like more.
"That was so good. Whoever gave it to you must have some money, I don't think that bottle is cheap."
"He does." Zoro chuckled pouring another round.
Soon the bottle was empty and you were lying back on the sofa lazily singing a song you'd had stuck in your head. He quietly observed you from his spot on the floor. Slowly the words to the cheerful tune you sang turned into some sort of chant.
"More, more, more moooooooooore,"
"I'm not sure you can handle more." he murmured meeting your half lidded gaze.
"How rude." you gasped in feigned offense.
"Hush, you know you've had enough. How about some water?" he suggested rising to his feet, "You're gonna feel like shit in the morning."
"You worry too much." you tried to sit up and failed falling back into the cushions.
Zoro chuckled and passed you to get a couple of water bottles from the kitchen. When he returned you had fallen asleep. Shaking his head he bent down to scoop you up tensing when you whimpered and snuggled into his warmth. You stirred when he placed you on the mattress muttering that it was hot.
"Here." he pulled a shirt from his dresser and handed it to you before grabbing a blanket, "the bathroom is right across from the foot of the bed. You can wear that to sleep if you want. I'll be on the couch so, call me if you need something."
"Greenie," you called weakly rolling over to face him, "stay in here with me."
A rosy pink dusted his cheeks, "I don't think that's a great idea."
"Because you think I'm sexy?" you boldly teased.
"Exactly," he deadpanned, "go back to sleep."
With that he switched off the light and left the room before he lost his will to not hop in the bed with you.
_____________________
You sat in the bed wracking your clouded brain trying to remember where you'd ended up and what you had done, if anything.
"Fuck." you whispered as the bathroom door opened and Zoro stepped out with a towel lazily tossed over his wet hair.
#the one#x reader#one piece#marco the phoenix#roronoa zoro#shanks#whitebeard pirates#zoro roronoa x reader#lyndsyh24#slow burn
11 notes
·
View notes
Note
That last ask instills the mental image of Barto meeting Buggy and Red and Red just casually chatting it up with Barto who’s just in full fanboy mode over Luffy the entire time. They all part a while later. “God that guys WEIRD.” “Yeah, complete nutcase, kind of adorable tough, his enthusiasm is endearing, but really he should-“
And after that Buggy isn’t listening anymore because the words “Kind of adorable.” And “endearing” just repeat in his brain ad nauseum.
And thus begins a long standing, violent, personal, spirited… and completely one sided rivalry between Barto the cannibal and Buggy the clown.
Barto has no clue what’s fucking going on and is slowly developing coulrophobia because this man won’t stop…. Glaring at him… menacingly!!
dqskjns I love it. Two points :
I'm a sucker for jealous buggy because that's SO funny. One one hand, he has absolutely no reason to be jealous, Red isn't a cheater at all, she only has eyes for her despicable husband. On the other hand, well. Roger and Jessica Rabbit effect, you know? she's WAY out of his league and he KNOWS it. ALSO I think that Buggy would be extremly pissed off if Barto wasn't at all, in the end, interested in his wife. "Oggling my wife dipshit? - huh??? noh, not at all, just came here for Luffy sama!!!! - OH SO MY WIFE ISN'T GOOD ENOUGH FOR YOU SHITHEAD??????!"
imagine the reaction of Barto and Buggy when Barto will learn that Red has actually sailed with the strawhats* and that she and her kids are an like extended nakamas.
Barto: WHAT??? RED CHAAAAN YOU WERE A STRAWHAT TOO??? CAN I HAVE YOUR AUTOGRAPH PLEASE
Red: snorting, yeah, sure, here for you punk boy
(A severed clown fist is coming in the head of an absolutely oblivious Bartolomeo)
* note: now that I saw all the arcs pre timeskip, I'm thinking about rewriting the story of Red & the triplets to see where / when they would sail with the strawhats because Buggy messed up badly. I came to the conclusion that the best arc for it would be Thriller Bark. I'm just kicking my feet at the idea of preteen redbomb triplets having halloween shenanigans in Scooby-Doo island. Rory becoming an instant fan of Hogback. Blaze kicking Zombies ass here and ther. Skye absolutely simping over Perona and her menagerie. DO YOU SEE MY VISION???
#buggy the clown#one piece oc#redbomb family#buggy one piece#redbomb triplets#one piece#buggy#redbombshipping#oc x canon#fankids#redbomb#redbomb kids#ask sid glorious
7 notes
·
View notes
Text
Meeting a Red Hot
Part 1 of (no title yet sooo)
Some sexual implications
You were a bit tipsy and couldn't help but stare even more at the red head who was loudly laughing over with his friends and your cousin in the adjoining room. Your cousin had invited you so you could get to know some of the people at the school you were transferring into a bit before the school year started. Transferring in your 2nd year of college wasn't ideal for you, but you rather hang out with your cousin and aunt than live in a dorm or travel with your parents on their '5th honeymoon' after winning the lottery. You were glad to have such loving and kind parents but you could only imagine the things you would see on that year long trip that no child should have to see their parents do.
Killer brought you here, but he told you in advance that I shouldn't mingle with him recklessly. To help your aunt, he took on all kinds of part-time jobs and ended up with Kid's gang, whoever the hell Kid was. Ironically, ending up in a gang must have been in his genes since our parents were in one, too. Just from over hearing rumors at the party, you could see they had a bad rep. The thing was, you didn't really believe in them. Killer wouldn't do anything to make his mom sad, let alone risk going to jail and leaving her on her own. Granted, even then, she probably wouldn't be too upset. From what you saw and the jobs Killer tended to take, you figured they were a bunch of crass guys that had shit attitudes but worked hard in their jobs. Looking at the muscles on some of them, especially the sexy red hot, you could also guess the jobs were most likely manual labor jobs.
Having enough of the chatter some girls were having around you after figuring out all your cousins friends' names, you move to the adjoining room and go to talk to some gothic girl with bright pink hair and the group of people she gathered. She had started a truth or dare game with some others, and you figured it was interesting enough. The rule was you had to put in a twenty to play and every dare you skipped added another twenty to rejoin, winner would be the person who lasted the longest with doing the least amount of skips and they got the pot. After a couple of rounds, you got an idea of who you were playing with. Zoro and Perona were adoptive siblings and had an odd but close relationship. Some of Zoro's friends Sanji, Nami, Franky, and Usopp were also playing along with two of Perona's friends, Cami and Lola. The dares were getting more and more interesting the more drunk everyone was, and the more you found yourself eyeing your new favorite piece of eye candy. Finally, it was your turn again, and Sanji was asking the question. If you got this last one, the round would be finished, and you would win.
"Truth or dare?" You had yet to get Sanji as the one to ask you before, but from his other ones, you could guess the truth and dare you would get from him. The truth would be something along the lines of if you liked him or if you thought he was hot. The dares for him got restricted after he dared Nami to take her top off, so you were probably safer going for the dare.
"I'll go with a dare." You saw Nami glare at him as if to remind him of the rule not allowing him to make anyone take their clothes off. Sanji just grinned, though. As if he had found a loophole that would ultimately lead to his satisfaction. You immediately regret sparing the guys feelings and take another sip from the red solo cup in your hand.
"I dare you to kiss the hottest guy in the room." Your eyes go wide for a moment as you process the dare. You don't know if you got tired of side eyeing him or if you were really that drunk, but you stood up from your spot on the couch and walked right past Sanji who had his lips puckered and eyes closed in excitement. Walking right up to your cousin, you tap his shoulder. He looked shocked for a moment, and concern filled his eyes. You could read his eyes like an open book and thank god for that since he wore a dust mask and the rest of his face was covered.
"I just wanted to apologize in advance to you and... Kid?" You look to the red head. " I am drunk and like hell am I gonna lose out on a stack of cash cause I won't do a dare!" You justify yourself. Before he can ask any questions, you walk right up to the man you had been ogling all night and wrap your arms around his neck and pull him to your height. "Sorry." You mutter under your breath as you kiss him deeply. He was stunned before you felt a grin form on his lips as you kissed him, and he started to kiss back. As the kiss got deeper you could feel the eyes on your back grow in number, but your drunk mind didn't care about anything except basking in the feeling of his hands as they wrapped around your torso and the heat from his breath as you would both briefly move away from each other to catch a breathe of air.
It was only after feeling his hand roam a little further down from your waist that you actually realized where you were. The thing was that it wasn't even your mind realizing that you shouldn't be having a heavy make-out session with someone you don't know in a room full of more people you don't know. It was the uncomfortable cough from your cousin.
Your eyes shot open, and you wiggled out of your red hot's arms, instantly missing the feeling and warmth they gave you. The room was silent as you just as quickly sobered up. You knew people were staring, but you didn't know everyone was staring. You take a gulp and smile to hide your red face. You then proceeded to go back to the group that was playing truth or dare, once again ignoring a gaping Sanji and collecting your rightfully earned loot.
"Welp," You turn to Killer and his friends, trying your absolute best not to return the fiery gaze of the man you just kissed the heck out off. "I'm going home. Got plenty of cash to burn on an Uber, and I think I drank enough for the night. See you at home, Killer." And with that, you speed walk right out of the large house and start walking a good block down before calling for a ride.
You quickly throw your shoes into the shoe closet as you enter the house and wash up, ignoring all thoughts of the night and focusing on the bubbles the soap made. Once you felt you didn't reek completely of booze, you head to the basement where you and killer had rooms. It was remodeled so that you could easily access the bathroom from the stairway and the front door. Once downstairs, you go into your spare room and crash on the bed. You had officially turned off your brain and just knew you would remember nothing in the morning.
34 notes
·
View notes
Note
If you haven't watched past Dressrosa arc then it's okay! How about hcs of Nico Robin, Perona, Izou and Basil Hawkins as roommates in Apartment AU?
Mmmm, you smell that freshly cracked egg? I certainly do because this is an awesome dynamic to give to me!
Nico Robin, Perona, Izou, and Basil Hawkins as Roommates (Headcanons)




So, each of them were looking for a place and roommates that weren't going to question what they do or who they are
None of them had enough money to be on their own, except for Perona since she is receiving funds from Moria until she is able to support herself
She was staying in Moria's penthouse for the longest time until she had a sibling-like fight with Absalom, somehow ended up chilling with Mihawk, Zoro, and Kaku for 2 years in Mihawk's penthouse, then after her two bros moved out she got bored and also wanted to be independent so she moved to her own apartment
She set up an ad looking for roommates with 3 spots open, received and ignored a bunch of generic messages but then she got the eye-catching ones with an unusual first question
Robin sent the first
Robin: Is there a background check?
Perona: Why would there be?
After a discussion, Robin found out she would be safe at that place since Perona didn't seem to care what people did outside the apartment or their past history
Izou sent one that at first confused her
Izou: You don't mind if I'm a crossdresser?
Perona: What's a crossdresser?
This was back in the day when that wasn't exactly accepted so it was a bit hard for Izou to find a place other than Pops but luckily Perona only saw it as a positive thing because they could do makeovers
Hawkins' question only granted him a guaranteed ticket
Hawkins: There is a list of hobbies I have, one of which is tarot card reading, will that be a problem?
Perona: Card reading you say, what other hobbies do you have?
Not many people wanted a roommate with Hawkins' particular hobbies, fortunately, Perona enjoyed spooky aesthetics and wasn't bothered by it
Perona sent a message to each of them that they can move in the next day
Just imagine the look on their faces when all three arrive at the building at the same time and go in the same direction xD
It's an interesting group but they learn to get along, they're chill and civilized, and no one gets in the way of the other
They all have long hair so there will be a lot of hair products in the bathroom
There will be spa days and makeover days, Perona is going to make it happen and they all enjoy it
Braid train
When Izou is away for the night, Hawkins, Perona, and Robin have a horror movie marathon
The three have different tastes in horror sub-genres
Hawkins favors darker toned ones with symbolism or a deeper meaning
Robin enjoys morbid ones, usually the one with a murderer on the loose that require the audience to put the clues together to figure out who it is
Perona likes the zombie apocalypse or monster films, and she adores the ones that feature a haunted house
Izou made the mistake of coming home early one time while they had their marathon, never again
Whitebeard: It's getting a bit late son, you probably should-
Izou: If I don't keep these idiots from doing something stupid then who will?
Whitebeard: But you work in the morning
Izou: I can run on caffeine
Yeah, he ended up passing out on the couch from exhaustion after his shift was over
Perona, Robin, and Izou have a girls night out (Izou didn't want to at first since he didn't really count but Perona was persistent so he got dragged into it)
Surprisingly, it's pretty fun and they have it every 2 weeks
There was one time where a guy tried to "flirt" with them, and Izou just went "Hey buddy" (surprising and confusing the man) then punched the guy out, it was funny (I would love to see that as a mini comic)
Robin, Hawkins, and Izou share an interest to myths, lore, and other historical things in the past
They discuss it in the morning over a nice cup of coffee/tea
The true adults in the apartment
The place stays clean, mainly thanks to Robin's devil fruit abilities
And they take turns cooking dinner which gives them variety of different dishes to eat
There is one unspoken rule, and that is don't bring company other because there's always this tension that arises between the guest(s) and the other roommates (or if the guest is a strawhat they're just noisy which disturbs the usual pleasant atmosphere)
Somehow this was actually the perfect combination, sorry it took so long to make.
#one piece#one piece au#one piece headcanons#perona#one piece nico robin#nico robin#one piece imagine#one piece scenario#basil hawkins#one piece hcs#apartment au#one piece izou#izou#one piece hawkins#modern one piece au#one piece modern au#requested
134 notes
·
View notes
Text
Room For One More
I wrote this just off the cuff, for no reason. It was inspired in part by conversations with @jhaernyl and @babblebuzz so I encourage you to blame them, even though neither of them asked for this, wanted it, or suspected they were about to get 1000+ words in their messages.
It’s suppose to be Mihawk.x Law x Zoro, but it never got so far. It features Mihawk x Law as a married couple, Zoro as Mihawk’s too young and too cute and too sexy assistant that Law finds just suspicious... And also really fucking hot.
PS: Sorry for the requests I haven’t filled, especially Go To War For You. It’s coming, I swear! I just got out of the hospital and straight back to work, and I lost my train of thought there. But I’m slowly writing it out. Because obviously I love me some MiZoLaw
PPS: See people this is what you message me/converse with me. I just write up 1000 words of nothing. You are to blame.
Room For One More: Get Him Out
Ooohh... Au where Law is married to Mihawk and one day he comes home to find his husband leaning over and around this green haired.... KID (that's what he is, he is a goddamn kid, Law thinks. He may be all of 18. Barely.) Law just stands in the door, utterly unacknowledged as Mihawk continues speaking in that low, sexy voice of his and Law is too upset to even hear what he's saying, but he sure as hell can see the way his husband's mouth is so close to the boy's ear the three gold bars hanging from it jingle together. Like a fucking alarm bell as far as Law is concerned.
Law coughs.
Twice.
That finally does it. Both of them turn as if they just noticed Law when he'd come in mid rant about a patient who just won't take his damn meds and paperwork and yet only know have they managed to notice his existence.
Mihawk smiles even as Law glares him down. "Law, you're home early."
"Actually, I'm home precisely when I was supposed to be."
Mihawk nods, brow furrowing for a mere second, thrown by the snippiness in Law's voice. Oh sorry I sound upset about walking in on your clearly private session with school boy jezebel here, honey. "Which in your case, is early. I can't name the last time you did not stay late at the hospital for one reason or another."
"I had a frustrating day, I wanted to call it an early night. I wasn't aware that we'd have... guests." Law's eyes not so subtly fall to the boy, unable to see him completely since he's still sitting there between his husband's arms. Plus he's gone back to whatever is in front of him on the table. Sure, now he feels a sense of shame.
When his gaze goes back to his husband, Mihawk has an eyebrow raised. Law knows that look. The "I am older and wiser than you and do not understand at times why you behave the way you do" look. Law hates that look, but right at this particular moment it makes him want to stab something.
Preferably something green, cute, and sitting in between his husband's arms like it's no big deal.
"I informed you earlier. Red-Hawk offices are under going heavy renovation and will be unusable for the next two weeks, forcing me to work from home." Yes, Law remembers the conversation. Although, admittedly, only barely. He'd had just gotten off two major surgeries and countless troublesome patients and a 12 hour shift. Mihawk himself had apparently been forced to run meeting after meeting, and all alone thanks to the newly wedded Shanks and Benn having both come down with some undescribed illness, that was on top of his normal work overseeing product development, speaking with potential clients, whatever he did at that office of his, the very description of which always bored Law. He knows it's something sports related, that it makes incredibly good money but also keeps Mihawk constantly busy and nearly as exhausted as Law. Just the other day he ended up sleeping over at the office and...
Oh. Oh, fuck, Law has been so stupid and naïve. And he supposes this boy's name just happens to be At-the-office.
"This is Roronoa Zoro," Mihawk continues, ignoring the narrowing of Law's eyes. "He's one of our interns. He's acting as my temporary assistant while Perona is on vacation."
Right... The pink haired gothic doll that acts as his husband's right hand.... Lolita (that wording had never sounded so wrong to Law. He'd met Perona plenty of times. While the girl gets on his nerves, she is apparently incredibly effective. He's also seen her with Mihawk and there is absolutely nothing going on there.) Her absence is part of what's been adding to his husband's recent stress at work.
Stress he's apparently found a cure for. A very new cure, apparently. Barely old enough to be out of testing.
The boy glances back at Law since the first time since he first interrupted them. His husband stands up, freeing the boy to sit up a little straighter. Law had been right. He is cute. Annoyingly so.
"Hey there," the boy says in such an incredibly causal tone it actually throws Law for a second.
"Roronoa," Mihawk's already low voice seems to dip a little deeper, more authoritative. Usually sexy as hell, goes right to Law's cock. Unless he's exhausted. Or it's being used on his fucking boy toy.
The kid actually rolls his eyes! "Sorry. How do you do, Dracule-san," Zoro says, using his schoolboy on his best behavior voice which, who knows, he may actually still have use for. His voice is lower than Law had assumed, almost expecting him to sound like a child not yet through puberty.
"It's Trafalgar, actually," Law corrects him, and it's a pointed correction. Instead of being relieved that at least the boy knows he is indeed the husband here, he's more annoyed than ever. So Mihawk told him he was married and the boy came anyway?
Zoro shrugs off the mistake, apparently entirely unaffected by Law's rather legendary bad looks. "S-- My apologies, Trafalgar, I was unaware."
Law can't help but notice that despite the still formal language, Zoro has already thrown away the honorific. Much like he already thrown away any respect for the sanctity of Law's wedding vows.
You know what, no. Law's day had been hell and this is simply too much right now. "Excuse me. I'm starving," he mutters. He moves by Mihawk without stopping for their usual kiss, not even looking at his husband as he goes to open the fridge.
It doesn't mean he misses the way his husband's striking golden eyes follow him, just like a hawk's would as it studies its prey. Nor does he miss how eventually the feeling burning into the back of his neck drops away. He hears a low sigh, almost neutral except he knows his husband. He can hear the frustration.
Good. Let him be frustrated..
"Roronoa," Mihawk says, sounding almost as tired as Law feels. "Do you remember when I showed you the study earlier, where I keep all the file logs."
Law is too busy trying to ignore the goddamn child in his kitchen to care what he replies. He does, however, get out some vegetables right at that moment, and so sees the way Zoro turns his head up, exposing a long column of his neck, stretching it above the collar of his undone dress shirt, as he gives his husband a sort of searching look, pausing before he nods.
"Could you take the papers up there, please, and finish the form as instructed. Law is trying to dig out a damn chopping block but does hear the boy say, "Yeah, sure." and the scratch of chair legs along with shuffling papers.
Just as Law has finally found what he needed, right where it was supposed to be but that's not the point, he hears Mihawk approaching. Before he even makes it halfway to Law he's stopped. "Wait."
Law looks up on instinct. Mihawk's deep voice also attracts Zoro, who had finally almost been gone. "Don't start the next form until I am there. Simply file what we've completed."
"Yeah, okay."
"That will be all, Roronoa." Zoro actually has the nerve to roll his eyes before he turns to start leaving again. Not that he gets far. "Roronoa," his husband adds with another sigh. Frustrated still, annoyed and... endeared. Yes, damnit, Law knows Mihawk too well.. "It is the other door." Zoro's shoulders go very stiff. He huffs but says nothing, making a quick turn and marching out of their kitchen. At least.
Law slams the chopping board down on the counter so hard he's surprised neither of them breaks.
"Law.." Mihawk places a heavy hand on Law's shoulder which is quickly dismissed. He picks up a knife - perhaps not the best choice at the moment... For Mihawk - and starts chopping away at some peppers. They are nice and green and easy for him to slice apart. "Law... Darling," Mihawk tries again, this time not attempt to touch him. He is watching Law chop apart the pepper, which is good. One of them should probably be paying attention to the way he wielding a sharp blade around his fingers while exhausted and enraged. "Very well, I can see that you've come to certain conclusions, but let me assure you those assumption are entirely incorrect, likely the result of your long shifts and lack of sleep.
Law ends up embedding the knife in the board. He turns to Mihawk, an aura of pure darkness. Honestly, he loves the man, bit is this the time for one of his "be sensible, I'm right" speeches? Law glares up at him, temped just storm out only that would just make Mihawk feel more confirmed in his believe that Law is over reacting.
Instead, after a deep breath, Law starts in on him, his voice low and logical while still with an edge of danger. "I walked into our kitchen to find you leaning over some boy BARELY out of high school - hopefully! - whispering in his damn ear.... Don't think I don't remember you doing that to me. I believe you later admitted to loving being able to watch my face as you slowly worked me up into a frenzy. Was the boy getting hard for you? Or had you only just started?"
Law's voice is laced with some much bitterness and maybe... Maybe some heartbreak but Law is burying that deep right now. Yet Mihawk's face gives him nothing. His husband leans against the counter with his arms crossed, watching him go off on this rant with neutral and yet somehow analytical expression. That just drives Law temperature even further. Even more than Mihawk's utter lack of an answer.
"Your reaction?" Law's voice is raising with every word, furious that Mihawk is giving him so little when Law has every right to be mad. "Once I get you attention, at least. You're very first comment when I come home exhausted and stressed and find you with some green haired, rude little brat? Surprise that I'm home early."
"I apologize, Hawk-ya, that in interrupted your time with-
Mihawk pulls Law in for a kiss. It's not sensual or deep, but it's sincere. Which... Law can't even understand. It makes no sense. It makes Law want to cry and as that realizes comes Law realized he already has been.
Why is Mihawk doing this to him? Just tell him the truth.
When he pulls back, Mihawk appears at least somewhat contrite. Still, when he finally nods it feels like like an agreement and more like he's acquiescing. "Perhaps it would have given the circumstance to give you more time to adjust to this change, but let me assure you that Roronoa is only here in an official, business capacity. "
"And what's his business? Sucking my husband's cock?" Law bites back, no longer wanting Mihawk to try and disguise what is obvious, like he thinks Law is an idiot or, more likely, so overworked and so rarely home he simply would never notice the indiscretion and would be too exhausted to bother caring if he did.
Is that... Is that how Mihawk sees their relationship?
Mihawk reaches for him again but Law has had enough. He jerks away before Mihawk even gets close to touching him, eyes fire and challenges as he stares up at the older man. “Where did you pick him up? A damn kindergarten?”
“He’s an intern for RedHawk, as I explained earlier,” while Mihawk’s words are still rather simple, straight forward in many ways, his tone is patient. Like he’s dealing with a damn child. “And he is nineteen.” Well, he probably has practice since he’s sleeping with one. “Please, Law, you are clearly exhausted. Let me finish instructing Zoro on some final matters and we’ll both of us lay down. It’s been a hard week and-”
Oh, he’s sure his husband will instruct the boy on all sorts of things. Law swings around, hunger completely forgotten. “You’re right, Hawk-ya,” he spits the old nickname with a venom, storming from the kitchen, his hunger completely forgotten. “I do need rest. And frankly I think that is more likely to happen if I don’t have to share my bed with two other people.”
#the zolaw au nobody asked for#Oh trust me it turns ZoLaw#Well MiZoLaw#that's right it's polygraphic#jealous law#innocent zoro#Conversations With Internet People#maybe people shouldn't engage me in conversation#just more of my random writing#ZoLaw#MiZo#zoro x mihawk#mihawk x zoro x law#MiLaw#zoro x law x mihawk#mihawk x law#a fleet of ships#one piece#one piece fanfiction#one piece au#one piece modern au
43 notes
·
View notes
Text
P5R: Rebel Girl (A FeMC Story/P5R Rework) Chapter 3: Versailles
Ren and Ann looked around at their new surroundings. “Wh-What’s going on?!” Ann demanded. “We need to call someone!” She got out her phone. Her face went pale. “Huh?”
Ren looked over her shoulder to see that Ann now had the app she had. Ren took out her phone and tapped the app. She looked at it. In black were the words “Kamoshida” and “School” but in white was the word “Revolution”. Ren was curious about that, but didn’t think that it was the most important thing going on right now. “We should get out of here,��� she said.
Ann turned to her. “Huh? Oh, right. Yeah.” They looked around. “Where should we go?”
Ren shrugged. “I guess we could see if people are here.”
Ann nodded. “Good idea.” The two girls wandered the city calling out to people. They managed to catch a glimpse of a person, but they went into hiding as soon as they were spotted. “Hey! Get back here!” Ann called, running up to them. Ren followed her.
Eventually the two caught up to the person to find a boy with short blue hair wearing a peasant’s wardrobe. Ann was shocked. “Hey, aren’t you on the volleyball team? And you’re in our class, right? Your name’s Mishima.”
Ren did recognize the boy from her class. From what Ren could tell, he seemed like the type that could break down at the drop of a hat. After hearing he was on the volleyball team, it made sense.
Mishima spoke up. “You’re...you’re not agents of the king, are you?”
“Huh? King?” Ann said, confused. “No! We just got here! We need to get out!”
“But, wasn’t there a decree from the king for her to be summoned?” Mishima said, pointing at Ren.
The two girls were confused. “Decree?” Ann said.
Trumpets blared. “ATTENTION! ANNOUNCING THE ARRIVAL OF THE KING!”
Mishima gasped. “I gotta get outta here.” Mishima ran and hid.
Ann looked determined to figure this out. “Let’s go see what this ‘king’ thing is about!” Ren nodded and the two went towards the sound of the announcement. When they got to the square, they were shocked and hauled by the sight they were greeted with. “What the hell?”
Four strange-looking knights were carrying a litter in the shape of a throne made of gold. And on it was an all too familiar face. Kamoshida. He was wearing a crown, a cape adorned with hearts, boxers also adorned with hearts, and nothing else.
Ann and Ren looked at the litter some more. “WHAT THE HELL?!” Next to Kamoshida was Ann. But this Ann was wearing a bikini and cat ears. They looked more. They saw a figure of Ren at Kamoshida’s feet, wearing torn up prison garb that accentuated her feminine features. “I think I’m going to be sick.”
“Listen up!” said Kamoshida. “I’ve heard tell that SOME people don’t like how I treat this town, and are planning on overthrowing me! WHO ARE THESE PEOPLE?! They need to be THOROUGHLY PUNISHED!” Ren and Ann looked around. All over, they could see townspeople hiding. “WELL?!”
Ann clenched her fists. “WHAT’S GOING ON?!” she yelled. That caught the attention of the knights and King Kamoshida. “WHAT IS ALL THIS?!”
Kamoshida looked her and Ren over. “So. You think you can impersonate my queen and newest toy and get away with it?!”
“What?!” Ann said.
“Like, she’s totally not doing, like, a good job of it,” said the other Ann. “Isn’t that right?” She was addressing the other Ren. The other Ren seemed too scared to say anything, simply nodding in agreement. “I, like, thought so. Isn’t the punishment for that, like, death?”
Kamoshida looked the real versions of them over. “Well, as pale of imitations as they are, they still look rather stunning… Tell you what: I’m going to go easy on you. Guards! Rough them up a bit, then bring them to my chambers!”
Yes sir!” said the knights.
“HELL NO!” Ann screamed. “I’d rather die!”
Kamoshida scoffed. “Very well. If you insist.” He waved his hand and more knights showed up. “This oughta be fun.”
The knights surrounded Ann and Ren. “For King Kamoshida!” one called out.
“For King Kamoshida!” The other knights called out.
The knights were simply too powerful, and pushed Ann to the ground. “No...this can’t be it…” Ann called.
Ren was frightened. Knights were surrounding her as well, but she tried to keep her distance. Just what was she getting involved in? And why did her new friend get brought into it as well? Maybe I’m in over my head.
“What’s the matter?” a voice in Ren’s head called out. She remembered that voice. It was the same as when she rejected that figure’s offer. Only this time, it was much louder, causing Ren to struggle. “Are you simply going to watch? Or run away? Death awaits her if you do nothing. Was your previous decision a mistake?”
Ren remembered saving that woman. Even though it went bad for her, she knew in her heart that she would do it again if given the opportunity. “No” Ren told the voice.
The voice answered back. “Very well. I have heeded your resolve. Vow to me! I am thou! Thou art I! Thou who art willing to perform all sacrilegious acts for thine own justice! Call upon my name, and release thy rage! Show the strength of thy will to ascertain all on thine own, though thou be chained to Hell itself!"
A mask formed on Ren’s face. Ren grabbed it with both hands. She struggled to tear it off. She shouted “Arsene!” and her mask came off. Her face was pouring blood. She was also wearing a dress shirt, black pants, black shoes, red gloves, and a black coat. Standing behind her was a figure, wearing a similar dress shirt with a white cravat, pink sleeves and legs, black shoes, a black mask, a blue flame for a head, long wispy brown hair, a black top hat, black clawed hands, and black wings.
“What?!” said Kamoshida. “Stop her!” The knights charged her, but Ren directed Arsene to defeat them, which they did. Ren continued her assault on the knights and eventually freed Ann. Kamoshida was now shaken. “You’re going to regret this! Get me out of here!”
“Yes sir!” said the knights carrying him turned around and ran back to his castle in the distance.
Arsene disappeared and Ren’s mask reappeared on her face. Ann looked off at the fleeing Kamoshida. “Well…THAT was something.” She turned to look at Ren. “Woah! What’s with the look?” Ren looked over her new clothes. “They look…”
Ren smiled. “Cute? Dashing? Tre Manifique? All of the above?” she said. Ann looked uncertain. “The answer is D. ‘All of the Above.’”
Ann eventually cracked a smile, giggled, and said “If you say so.” She looked around. “While, whatever just happened was cool and everything, we’re still no closer to escaping whatever this place is.”
“You’re right,” Ren said. “Let’s keep looking.”
The two went further into the village when they were approached by two girls also dressed as peasants. “Hey! What you did back there was really cool!” one of them said.
“Yeah!” the other one said. “We could really use someone like for.” “Me?” Ren said.
“For what?” Ann asked.
The first girl answered. “Well, remember when the king said people were plotting to overthrow him. Well, it’s true.”
The other girl added “Our leader just began rallying people for this endeavor. And we think you two might just fit in!”
“Us?” Ann said. She thought about it. “Well, if it’s about taking Kamoshida down a peg, then sure. We’ll help.” Ren looked at Ann confused. “Well, it’s not like we’re getting out of here anytime soon. And who knows? Maybe this could be fun.”
“NO!” shouted a voice. A slingshot pellet landed between the four girls. Ren and Ann turned around to see a cat-looking thing on its hind legs with a yellow scarf aiming a slingshot. The two peasant girls ran away.
“What was that for?” Ann asked.
“Follow me” the cat said.
Ann wasn’t sure what to make of this, but Ren somehow knew to trust this cat. She put her hand on Ann’s shoulder and said “I think this cat’s alright.”
“I’m more than alright” they said. “I’m amazing! Now let’s go. You wanna get out of here, right?” They walked off. Ren followed after.
Ann was shocked, wondering what’s going on. She decided to go with them as well. “Hey! Wait for me!” The three of them were walking for a bit. Soon, they were outside of the village, and at a bridge over a moat leading to a castle. “Where are we going anyways? You said you’d let us out of here.”
“Just hold on,” said the cat. “We’re almost there.”
“Halt!” said a voice. Two knights showed up. “We’re under orders from the king to capture you!”
The cat smirked. “Hm. Judging by your outfit, you’ve awakened to your Perona as well. Wanna show these two what for?”
Ren nodded. “Arsene!”
The cat faced the other knight. “Zorro!” A Persona appeared above the cat. The knights then morphed into Pixie and Jack O'Lantern. With the two of them working together, they made easy work of the shadows. “Looks like you’ve got a real knack for this. Now let’s go!”
“WAIT!” Ann shouted. “I’m not going ANYWHERE until someone explains what’s going on!”
The cat had an uneasy look on their face. “...Fine,” they said. “My name is Morgana. I was created by Igor to assist this person” he said, pointing to Ren.
“Huh?” Ann said.
Ren was rather embarrassed. “Sorry” she said. “I’ll explain.” Ren detailed the information she was given to Ann.
“Woah! I can hardly believe it” Ann said. “So, you were supposed to fight this Yaldabaoth thing, but someone hijacked their plan?”
“Basically” said Ren
“But, how does that explain any of this?!” Ann asked.
“Tag me in!” Morgana said. Ren raised her hand. Morgana jumped and they high-fived. “Now, what you are seeing around you is the Metaverse.”
“Metaverse?” Ann said.
“Yes,” said Morgana. “Basically, think of it as the collective unconscious of all of humanity. Now, sometimes, when a human’s desires become so warped, it leads to the creation of these things called Palaces.”
Ann looked around. “But, this doesn’t look like much of a palace. It looks more like a village.”
“Yes, well…” Morgana said. “Due to this figure taking over Yaldabaoth’s plan, the nature of the palaces have changed.” Morgana looked at Ren. “You noticed it too, right? On your phone?”
Ren took out her phone and loaded up the app. “You mean the difference in the text?”
Morgana nodded. “That’s exactly right. The two words in black represent the original distortion.”
“‘Kamoshida’ and ‘School’” Ren clarified.
“Yes,” Morgana said. “But the text in white represents how the cognition has changed.”
“‘Revolution’” Ren pointed out.
Ann frowned. “Oh. So it’s my fault we’re here” she said.
Ren placed her hand on her shoulder. “Hey” she said. Ann looked up. “I was told I’d have to face this anyway. In a way, you’ve helped me. And in another way, I should be the one apologizing. You shouldn’t have been dragged into something like this.”
Ann smiled. “Thanks. But, now that I am here, I’d like to help however I can. After all, we’re in this together.” Ren nodded.
“Anyway” Morgana said. “While the cognition has changed, the goal remains the same.”
“What do you mean?” Ren asked.
“In order for this cognition to subside, we need to steal a treasure!” Morgana clarified.
“Treasure?” Ann said.
Morgana nodded. “It is the source of the palace ruler’s distorted desires. If we take that, the ruler will have a change of heart.”
“I see,” Ann said. “So, what does that mean?”
“It means that this Kamoshida person will confess their crimes!” Morgana said.
“Oh” said Ann. She looked determined. “Then definitely count me in! But hold on, wasn’t that what the village people were going to do. They said they wanted to overthrow Kamoshida.”
Morgana glared at Ann. “That’s part of this new figure’s trick,” he explained. “The takeover of the cognition is only the beginning. Their end goal is the death of Kamoshida.”
“D-Death?!” Ann said. “Hold on! While that bastard might deserve a lot, no one deserves to die!”
“So, how does this death play out?” Ren asked.
“Most of the beings you’ve seen are cognitions; part of the universe here” Morgana explained. “They have no connection to their real-world counterparts. However, Kamoshida does. If the Kamoshida here dies, the Kamoshida of the real world will suffer a mental breakdown and die as well.”
“Wait, that sounds like those mental shutdown things that are happening” Ann said. Ren was confused. “Huh? Oh right. I guess you just got here. Recently, there’s been a series of unexplained incidents where people have suffered mental shutdowns or mental breakdowns. It’s really bizarre.”
“Another part of Yaldabaoth’s original plan” Morgana said. “I guess that had to carry over.”
“So, we just need to go and steal Kamoshida’s treasure here and he won’t die and will be punished for his crimes?” Ann said. “I’m in.”
Ren had another question. “How is this cognition being hijacked?” she asked.
“Good question,” Morgana said. “Just as this place was created out of Kamoshida’s distorted desires, it was hijacked by someone else’s desire for revenge.”
“Do you know who that is?” Ren asked.
“That, I don’t know,” Morgana said. “Would either of you know anyone who hate Kamoshida so much that they would want to kill him?”
“Believe me, I can count on one hand the number of people who DON’T want him dead” Ann said.
“I see,” Morgana said. “Well, if that’s the case, I’ll do some more investigation over here. For now, you two need to leave. I’ll contact you when I have more information.”
“Right,” Ann said. “So, where is the exit?”
“Over here” Morgana said. He guided them to the exit and soon the two girls found themselves outside of Shujin Academy, and Ren had changed back into her school uniform.
“Man, what a day” Ann said. Their stomachs growled. “Hey, why don’t we get something to eat. My treat.” Ren nodded. On their way, Ren called Sojiro to tell him that she’s grabbing dinner with a friend. “Here we are,” said Ann. Ren looked up to see a monjayaki place. “Trust me, this place is great.” The two headed inside.
When the two started eating their food, Ren immediately loved it. “See? I told you this was great!” Ann said. Ren nodded. “So, there’s something that’s been kind of bothering me. About Kamoshida’s cognition.”
“Of you?” Ren asked.
Ann looked sad. She sighed. “As much as it sickens me, I’m not surprised Kamoshida thinks of me that way. A lot of people seem to think of me like that.”
“I’m sorry,” Ren said.
Ann smiled. “It’s OK. I have people like Shiho who see me for who I really am.” She then got more serious. “What concerns me is how Kamoshida saw you.” Ren was shocked. “You were wearing this prison garb, and you looked scared to death. Like you had no choice but to be submissive to Kamoshida.” Ren started to shake a little. “Hey! Sorry. It’s OK if you don't want to tell me.”
Ren looked at Ann and smiled. She sighed. “I just don’t want you to stop being my friend…”
Ann took Ren’s hand. “Ren, listen. After everything we’ve been through today, there’s no way we’d stop being friends.”
Ren smiled and nodded. She sighed. “The truth is, I have a record.”
“Record? Of what?” Ann asked.
“An arrest record” Ren clarified.
Ann was stunned. “Oh.”
“And Kamoshida knows about it,” Ren said. “And he told me he’d tell the whole school if I didn’t do as he says.”
It was silent for a moment. Ann broke the silence “That bastard!” she said. Ren sighed a sigh of relief. “So, what did you get arrested for anyway? Being too cute?”
Ren snickered. “Thanks. But no…” Ren explained what had happened. She figured that if Ann was willing to not be scared of her for her record, she could tell her the truth about this. “See, what happened was, some guy was harassing this woman. I stepped in to help her, and the guy fell. He then claimed that I pushed him down, and the police sided with him instantly.”
Ann was clearly angry. “What a jerk,” she said. “He sounds like Kamoshida. Manipulating things to get his way.” Ren smiled, relaxing completely. “Listen, if there’s anything you need, don’t hesitate to ask me, OK?”
Ren nodded. “Same goes for me too.”
Ann giggled. “Of course!”
Ren felt a surge of energy inside her.
I am thou... Thou art I… Thou hast acquired a new vow...
It shall become the wings of rebellion that breaketh thy chains of captivity.
With the birth of the Lovers Persona I have obtained the winds of blessing that shall lead to freedom and new power
Lovers-Ann Takamaki: Rank 1
“Well, it’s getting kind of late,” Ann said. “We should head home for now. I’m sure that cat thing, Morgana was it, will find something. We should get rested up for then.” Ren nodded. The two left to go home for the night.
#persona 5#persona 5 royal#persona fanfiction#ren amamiya#Female ren#FeMC#p5#p5r#p5r rework#p5 FeMC#ann takamaki#suguru kamoshida#mishma#morgana
13 notes
·
View notes
Note
If it’s not too much, could you do more headcanons of Kaku with the Spooky family. I absolutely LOVED the other ones. I’m a real big Kaku fan, so I’m always happy seeing any sort of Kaku headcanon.
Kaku is my favourite CP9 character. i love him. also like, we all know i am a major slut for Found Family Tropes and Dynamics so you bet your ass that i will turn this into one big pile of mushy family dynamics goodness, anyway
Perona, Kaku and Zoro are absolute shithead siblings to each other
well, Kaku and Zoro more so
bc i’m pretty sure Perona ends up being a total Daddy’s Girl and therefore is Mihawk’s “favourite”
(the quotation marks are added by Zoro)
Kaku: “i am older than you, therefore you should show me some respect”
Zoro: “true, you talk like an old geezer”
Kaku: “……………bitch–”
sometimes Kaku just cannot stand Zoro’s honest but also rather profoundly idiotic nature, like Zoro just has to utter something that somehow only makes sense to him and Kaku goes absolutely feral
they also dare each other to do stupid things and end up being in trouble
(Kaku promised himself that he was Above childish antics)
(but let’s be real he kissed his dignity goodbye once he joined those Extra As All Hell Jock Goths in a spooky castle on a remote island)
all three kids siblings of them regularly have the inexplicable sibling-brain urge just to throw down at the mere sight of each other
*Kaku enters the room*
Zoro, unsheathing his swords: “oh man, guess i have to end you”
most of the time they don’t even greet each other; they just stoically stare from the other ends of the hallway while flipping each other the bird
#ask#tiny-adorable-and-hyper#the spooky family#headcanons ahoy#one piece headcanons#this was just a spur of the moment thoughts#they are a disaster and i love them so much o gOD#kaku#perona#roronoa zoro#dracule mihawk
135 notes
·
View notes
Text
CS189 Introduction To Machine Learning HW6 Solved
Submit your predictions for the test sets to Kaggle as early as possible. Include your Kaggle scores in your write-up (see below). The Kaggle competition for this assignment can be found at https://www.kaggle.com/t/b500e3c2fb904ed9a5699234d3469894 Submit a PDF of your homework, with an appendix listing all your code, to the Gradescope assignment entitled “Homework 6 Write-Up”. In addition, please include, as your solutions to each coding problem, the specific subset of code relevant to that part of the problem. You may typeset your homework in LaTeX or Word (submit PDF format, not .doc/.docx format) or submit neatly handwritten and scanned solutions. Please start each question on a new page. If there are graphs, include those graphs in the correct sections. Do not put them in an appendix. We need each solution to be self-contained on pages of its own. In your write-up, please state with whom you worked on the homework. In your write-up, please copy the following statement and sign your signature next to it. (Mac Preview and FoxIt PDF Reader, among others, have tools to let you sign a PDF file.) We want to make it extra clear so that no one inadvertently cheats. “I certify that all solutions are entirely in my own words and that I have not looked at another student’s solutions. I have given credit to all external sources I consulted.” Submit all the code needed to reproduce your results to the Gradescope assignment entitled “Homework 6 Code”. Yes, you must submit your code twice: in your PDF write-up following the directions as described above so the readers can easily read it, and once in compilable/interpretable form so the readers can easily run it. Do NOT include any data files we provided. Please include a short file named README listing your name, student ID, and instructions on how to reproduce your results. Please take care that your code doesn’t take up inordinate amounts of time or memory. If your code cannot be executed, your solution cannot be verified. In this assignment, you will develop neural network models with MDS189. Many toy datasets in machine learning (and computer vision) serve as excellent tools to help you develop intuitions about methods, but they cannot be directly used in real-world problems. MDS189 could be. Under the guidance of a strength coach here at UC Berkeley, we modeled the movements in MDS189 after the real-world Functional Movement Screen (FMS). The FMS has 7 different daily movements, and each is scored according to a specific 0-3 rubric. Many fitness and health-care professionals, such as personal trainers and physical therapists, use the FMS as a diagnostic assessment of their clients and athletes. For example, there is a large body of research that suggests that athletes whose cumulative FMS score falls below 14 have a higher risk of injury. In general, the FMS can be used to assess functional limitations and asymmetries. More recent research has begun investigating the relationship between FMS scores and fall risk in the elderly population. In modeling MDS189 after the real-world Functional Movement Screen, we hope the insight you gain from the experience of collecting data, training models, evaluating performance, etc. will be meaningful. A large part of this assignment makes use of MDS189. Thank you to those who agreed to let us use your data in MDS189! Collectively, you have enabled everyone to enjoy the hard-earned reward of data collection. Download MDS189 immediately. At 3GB+ of data, MDS189 is rather large, and it will require a while to download. You can access MDS189 through this Google form. When you gain access to MDS189, you are required to agree that you will not share MDS189 with anyone else. Everyone must fill out this form, and sign the agreement. If you use MDS189 without signing the agreement, you (and whomever shared the data with you) will receive an automatic zero on all the problems on this homework relating to MDS189. The dataset structure for MDS189 is described in mds189format.txt, which you will be able to find in the Google drive folder.
1 Data Visualization
When you begin to work with a new dataset, one of the first things you should do is spend some time visualizing the data. For images, you must look at the pixels to help guide your intuitions while developing models. Pietro Perona, a computer vision professor at Caltech, has said that when you begin working with a new dataset, “you should spend two days just looking at the data.” We do not recommend you spend quite that much time looking at MDS189; the point is that the value of quality time spent visualizing a new dataset cannot be overstated. We provide several visualization tools in mds189visualize.ipynb that will enable you to view montages of: key frames, other videos frames, ground truth keypoints (i.e., what you labeled in LabelBox), automatically detected keypoints from OpenPose, and bounding boxes based on keypoint detections. Note: Your responses to the questions in this problem should be at most two sentences. To get a sense of the per-subject labeling quality, follow the Part 1: Same subject instructions in the cell titled Key Frame visualizations. For your write-up, you do not need to include any images from your visualizations. You do need to include answers to the following questions (these can be general statements, you are not required to reference specific subject ids): What do you observe about the quality of key frame annotations? Pay attention to whether the key frames reflect the movement labeled. What do you observe about the quality of keypoint annotations? Pay attention to things like: keypoint location and keypoint colors, which should give a quick indication of whether a labeled keypoint corresponds to the correct body joint. To quickly get a sense of the overall variety of data, follow the Part 2: Random subject instructions in the cell titled Key Frame visualizations. Again, for your write-up, you do not need to include any images from your visualizations. Include an answer to the following question: What do you observe about the variety of data? Pay attention to things like differences in key frame pose, appearance, lighting, frame aspect ratio, etc. We ran the per-frame keypoint detector OpenPose on your videos to estimate the pose in your video frames. Based on these keypoints, we also estimated the bounding box coordinates for a rectangle enclosing the detected subject. Follow the Part 3: same subject instructions in the cell titled Video Frame visualizations. Again, for your write-up, you do not need to include any images from your visualizations. You do need to include answers to the following question: What do you observe about the quality of bounding box and OpenPose keypoint annotations? Pay attention to things like annotation location, keypoint colors, number of people detected, etc. Based on the third visualization, where you are asked to look at all video frames for on movement, what do you observe about the sampling rate of the video frames? Does it appear to reasonably capture the movement? For the key frames, we can take advantage of the knowledge that the poses should be similar to the labeled poses in heatherlckwd’s key frames. Using Procrustes analysis, we aligned each key frame pose with the corresponding key frame pose from heatherlckwd. Compare the plot of the raw Neck keypoints with the plot of the (normalized) aligned Neck keypoints. What do you observe? Note: We introduce the aligned poses because we offer them as a debugging tool to help you develop neural network code in problem 2. Your reported results cannot use the aligned poses as training data.
2 Modular Fully-Connected Neural Networks
First, we will establish some notation for this problem. We define hi+1 = σ(zi) = σ(Wihi + bi). In this equation, Wi is an ni+1×ni matrix that maps the input hi of dimension ni to a vector of dimension ni+1, where ni+1 is the size of layer i + 1. The vector bi is the bias vector added after the matrix multiplication, and σ is the nonlinear function applied element-wise to the result of the matrix multiplication and addition. zi = Wihi +bi is a shorthand for the intermediate result within layer i before applying the activation function σ. Each layer is computed sequentially where the output of one layer is used as the input to the next. To compute the derivatives with respect to the weights Wi and the biases bi of each layer, we use the chain rule starting with the output of the network and propagate backwards through the layers, which is where the backprop algorithm gets its name. In this problem, we will implement fully-connected networks with a modular approach. This means different layer types are implemented individually, which can then be combined into models with different architectures. This enables code re-use, quick implementation of new networks and easy modification of existing networks.
2.1 Layer Implementations
Each layer’s implementation will have two defining functions: forward This function has as input the output hi from the previous layer, and any relevant parameters, such as the weights Wi and bias bi. It returns an output hi+1 and a cache object that stores intermediate values needed to compute gradients in the backward pass. def forward(h, w): """ example forward function skeleton code with h: inputs, w: weights""" # Do computations... z = # Some intermediate output # Do more computations... out = # the output cache = (h, w, z, out) # Values needed for gradient computation return out, cache backward This function has input: upstream derivatives and the cache object. It returns the local gradients with respect to the inputs and weights. def backward(dout, cache): """ example backward function skeleton code with dout: derivative of loss with respect to outputs and ,→ cache from the forward pass """ # Unpack cache h, w, z, out = cache # Use values in cache, along with dout to compute derivatives dh = # Derivative of loss with respect to a dw = # Derivative of loss with respect to w return dh, dw Your layer implementations should go into the provided layers.py script. The code is clearly marked with TODO statements indicating what to implement and where. When implementing a new layer, it is important to manually verify correctness of the forward and backward passes. Typically, the gradients in the backward pass are checked against numerical gradients. We provide a test script startercode.ipynb for you to use to check each of layer implementations, which handles the gradient checking. Please see the comments of the code for how to appropriately use this script. In your write-up, provide the following for each layer you’ve implemented. Listings of (the relevant parts of) your code. Written justification/derivation for the derivatives in your backward pass for all the layers that you implement. The output of running numerical gradient checking. Answers to any inline questions. 2.1.1 Fully-Connected (fc) Layer In layers.py, you are to implement the forward and backward functions for the fully-connected layer. The fully-connected layer performs an affine transformation of the input: fc(h) = Wa + b. Write your fc layer for a general input h that contains a mini-batch of B examples, each of which is of shape (d1,··· ,dk). 2.1.2 Activation Functions In layers.py, implement the forward and backward passes for the ReLU activation function 0 γ 2.2 Two-layer Network Now, you will use the layers you have written to implement a two-layer network (also referred to as a one hidden layer network) that classifies movement type based on keypoint annotations. The input features are pre-processed keypoint annotations of an image, and the output are one of 8 possible movement types: deadbug, hamstrings, inline, lunge, stretch, pushup, reach, or squat. You should implement the following network architecture: input - fc layer - ReLU activation - fc layer - softmax loss. Implement the class FullyConnectedNet in fcnet.py. Note that this class supports multi-layer networks, not just two-layer networks. You will need this functionality in the next part. In order to train your model, you need two other components, listed below. The data loader, which is responsible for loading batches of data that will be fed to your model during training. Data pre-processing should be handled by the data loader. The solver, which encapsulates all the logic necessary for training models. You don’t need to worry about those, since they are already implemented for you. See startercode.ipynb for an example. For your part, you will need to instantiate a model of your two-layer network, load your training and validation data, and use a Solver instance to train your model. Explore different hyperparameters including the learning rate, learning rate decay, batch size, the hidden layer size, and the weight scale initialization for the parameters. Report the results of your exploration, including what parameters you explored and which set of parameters gave the best validation accuracy. Debugging note: The default data loader returns raw poses, i.e., the ones that you labeled in LabelBox. As a debugging tool only, you can replace this with the heatherlckwd-aligned, normalized poses. It’s easier and faster to get better performance with the aligned poses. Use this for debugging only! You can use this feature by setting debug = True in the starter code. All of your reported results must use the un-aligned, raw poses for training data.
2.3 Multi-layer Network
Now you will implement a fully-connected network with an arbitrary number of hidden layers. Use the same code as before and try different number of layers (1 hidden layer to 4 hidden layers) as well as different number of hidden units. Include in your write-up what kinds of models you have tried, their hyperparameters, and their training and validation accuracies. Report which architecture works best.
3 Convolution and Backprop Revisited
In this problem, we will explore how image masking can help us create useful high-level features that we can use instead of raw pixel values. We will walk through how discrete 2D convolution works and how we can use the backprop algorithm to compute derivatives through this operation. To start, let’s consider convolution in one dimension. Convolution can be viewed as a function that takes a signal I and a mask G, and the discrete convolution at point t of the signal with the mask is ∞ X (I ∗ G) = IG k=−∞ If the mask G is nonzero in only a finite range, then the summation can be reduced to just the range in which the mask is nonzero, which makes computing a convolution on a computer possible. Figure 1: Figure showing an example of one convolution. As an example, we can use convolution to compute a derivative approximation with finite differences. The derivative approximation of the signal is I0 ≈ (I − I)/2. Design a mask G such that (I ∗ G) = I0. Convolution in two dimensions is similar to the one-dimensional case except that we have an additional dimension to sum over. If we have some image I and some mask G, then the convolution at the point (x,y) is ∞ ∞ X X (I ∗ G) = IG m=−∞ n=−∞ or equivalently, ∞ ∞ X X (I ∗ G) = GI, m=−∞ n=−∞ because convolution is commutative. In an implementation, we’ll have an image I that has three color channels Ir, Ig, Ib each of size W × H where W is the image width and H is the height. Each color channel represents the intensity of red, green, and blue for each pixel in the image. We also have a mask G with finite support. The mask also has three color channels, Gr,Gg,Gb, and we represent these as a w × h matrix where w and h are the width and height of the mask. (Note that usually w W and h H.) The output (I ∗ G) at point (x,y) is w−1 h−1 XX X (I ∗ G) = Ic · Gc a=0 b=0 c∈{r,g,b} In this case, the size of the output will be (1 + W − w) × (1 + H − h), and we evaluate the convolution only within the image I. (For this problem we will not concern ourselves with how to compute the convolution along the boundary of the image.) To reduce the dimension of the output, we can do a strided convolution in which we shift the convolutional mask by s positions instead of a single position, along the image. The resulting output will have size b1 + (W − w)/sc × b1 + (H − h)/sc. Write pseudocode to compute the convolution of an image I with a set of masks G and a stride of s. Hint: to save yourself from writing low-level loops, you may use the operator ∗ for element-wise Figure 2: Figure showing an example of one maxpooling. multiplication of two matrices (which is not the same as matrix multiplication) and invent other notation when convenient for simple operations like summing all the elements in the matrix. Masks can be used to identify different types of features in an image such as edges or corners. Design a mask G that outputs a large value for vertically oriented edges in image I. By “edge,” we mean a vertical line where a black rectangle borders a white rectangle. (We are not talking about a black line with white on both sides.) Although handcrafted masks can produce edge detectors and other useful features, we can also learn masks (sometimes better ones) as part of the backpropagation algorithm. These masks are often highly specific to the problem that we are solving. Learning these masks is a lot like learning weights in standard backpropagation, but because the same mask (with the same weights) is used in many different places, the chain rule is applied a little differently and we need to adjust the backpropagation algorithm accordingly. In short, during backpropagation each weight w in the mask has a partial derivative ∂∂wL that receives contributions from every patch of image where w is applied. Let L be the loss function or cost function our neural network is trying to minimize. Given the input image I, the convolution mask G, the convolution output R = I∗G, and the partial derivative of the error with respect to each scalar in the output, ∂R∂, write an expression for the partial derivative of the loss with respect to a mask weight, ∂G∂c, where c ∈ {r,g,b}. Also write an expression for the derivative of ∂L ∂Ic. Sometimes, the output of a convolution can be large, and we might want to reduce the dimensions of the result. A common method to reduce the dimension of an image is called max pooling. This method works similar to convolution in that we have a mask that moves around the image, but instead of multiplying the mask with a subsection of the image, we take the maximum value in the subimage. Max pooling can also be thought of as downsampling the image but keeping the largest activations for each channel from the original input. To reduce the dimension of the output, we can do a strided max pooling in which we shift the max pooling mask by s positions instead of a single position, along the input. Given a mask size of w × h, and a stride s, the output will be b1 + (W − w)/sc × b1 + (H − h)/sc for an input image of size W × H. Let the output of a max pooling operation be an array R. Write a simple expression for element R of the output. Explain how we can use the backprop algorithm to compute derivates through the max pooling operation. (A plain English answer will suffice; equations are optional.)
4 Convolutional Neural Networks (CNNs)
In this problem we will revisit the problem of classifying movements based on the key frames. The fullyconnected networks we have worked with in the previous problem have served as a good testbed for experimentation because they are very computationally efficient. However, in practice state-of-the-art methods on image data use convolutional networks. It is beyond the scope of this class to implement an efficient forward and backward pass for convolutional layers. Therefore, it is at this point that we will leave behind your beautiful code base from problem 1 in favor of developing code for this problem in the popular deep learning framework PyTorch. PyTorch executes dynamic computational graphs over Tensor objects that behave similarly to numpy ndarray. It comes with a powerful automatic differentiation engine that removes the need for manual backpropagation. You should install PyTorch and take a look at the basic tutorial here: https://pytorch.org/ tutorials/beginner/deep_learning_60min_blitz.html. The installation instructions can be found at https://pytorch.org/ under ‘Quick Start Locally’. You will be able to specify your operating system and package manager (e.g., pip or conda). Debugging notes One of the most important debugging tools when training a new network architecture is to train the network first on a small set of data, and verify that you can overfit to that data. This could be as small as a single image, and should not be more than a batch size of data. You should see your training loss decrease steadily. If your training loss starts to increase rapidly (or even steadily), you likely need to decrease your learning rate. If your training loss hasn’t started noticeably decreasing within one epoch, your model isn’t learning anything. In which case, it may be time to either: a) change your model, or b) increase your learning rate. It can be helpful to save a log file for each model that contains the training loss for each N steps, and the validation loss for each M >> N This way, you can plot the loss curve vs number of iterations, and compare the loss curves between models. It can help speed up the comparison between model performances. Do not delete a model architecture you have tried from the code. Often, you want the flexibility to run any model that you have experimented with at any time without a re-coding effort. Keep track of the model architectures you run, save each model’s weights, and record the evaluation scores for each model. For example, you could record this information in a spreadsheet with structure: model architecture info (could be as simple as the name of the model used in the code), accuracy for each of the 8 classes, average accuracy across all 8 classes, and location of the model weights. These networks take time to train. Please start early! Cloud credits. Training on a CPU is much slower than training on a GPU. We don’t want you to be limited by this. You have a few options for training on a GPU: Google has generously provided $50 in cloud credits for each student in our class. This is exclusively for students in CS 189/289A. Please do not share this link outside of this class. We were only given enough cloud credits for each student in the class to get one $50 credit. Please be reasonable. Google Cloud gives first-time users $300 in free credits, which anyone can access at https:// google.com/ (least user-friendly) Amazon Web Services gives first-time users $100 in free credits, which anyone can access at https://aws.amazon.com/education/awseducate/ (most user-friendly) Google Colab, which interfaces with Google drive, operates similarly to Jupyter notebook, and offers free GPU use for anyone at https://colab.research.google.com/ Google Colab also offers some nice tools for visualizing training progress (see debugging note 3 above). Implement a CNN that classifies movements based on a single key frame as input. We provide skeleton code in problem4, which contains the fully implemented data loader (mds189.py) and the solver (in train.py). For your part, you are to write the model, the loss, and modify the evaluation. There are many TODO and NOTE statements in problem4/train.py to help guide you. Experiment with a few different model architectures, and report your findings. For your best CNN model, plot the training and validation loss curves as a function of number of steps. Draw the architecture for your best CNN model. How do the number of parameters compare between your best CNN and a comparable architecture in which you replace all convolutional layers with fullyconnected layers? Train a movement classification CNN with your best model architecture from part (a) that now takes as input a random video frame, instead of a key frame. Note: there are many more random frames than there are key frames, so you are unlikely to need as many epochs as before. Compare your (best) key frame and (comparable architecture) random frame CNN performances by showing their per-movement accuracy in a two-row table. Include their overall accuracies in the table. When evaluating models, it is important to understand your misclassifications and error modes. For your random image and key frame CNNs, plot the confusion matrices. What do you observe? For either CNN, visualize your model’s errors, i.e., look at the images and/or videos where the network misclassifies the input. What do you observe about your model’s errors? Be sure to clearly state which model you chose to explore. For the Kaggle competition, you will evaluate your best CNN trained for the task of movement classification based on a random video frame as input. In part (d), we did not ask you to tune your CNN in any way for the video frame classifier. For your Kaggle submission, you are welcome to make any improvements to your CNN. The test set of images is located in the testkaggleframes directory in the dataset Google drive folder. For you to see the format of the Kaggle submission, we provide the sample file kagglesubmissionformat.csv, where the predictedlabels should be replaced with your model’s prediction for the movement, e.g., reach, squat, inline, lunge, hamstrings, stretch, deadbug, or pushup. Read the full article
0 notes