New super mario brother bed setting

SomeCallMeJohnny: Game Reviewer & Let's Player

2013.11.22 01:05 SpeedsterPaul SomeCallMeJohnny: Game Reviewer & Let's Player

Unofficial subreddit of the game reviewer and let's player.
[link]


2012.11.27 22:53 Thaddiousz Bad OCs

[link]


2024.06.01 14:37 Dapper_Difference663 [PC SERVER] New Beginnings No Wipe launched 5/25

[PC SERVER] New Beginnings No Wipe launched 5/25
New Beginnings - you've never ARKed like this before! ▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬ New Beginnings is a brand new ASE PVE community Launched 5/25, looking for core members to play and grow with us! It is our goal to provide extensive content and extend your gaming pleasure well into late game with new features and enhanced end game content that will keep you coming back for months and years to come.
Enhanced content: We have Over world super bosses from 3 tiers each stronger than the last and the final tier will require maxed breed lines, capped saddles, and well organized compositions to beat. These bosses are stronger than the Ark bosses you have faced before but very rewarding with exclusive rewards only obtained through events and superbosses!
Quests are added to make your progression even more rewarding and give milestones to chase for epic rewards some will take a very long time but will be worth the mileage. Our quests have a unique UI that you can explore that also give you player stats and leaderboards.
Admin hosted events: We host many events for our community to keep things fresh and entertaining, many of our events are PvPvE and will be hosted on a exclusive event map with PvP enabled with safe zones for PvE events. Among these events we host: Paintball tournaments, Downhill doedic derby, Darts, Maze runs, Ovis soccer, Dodo Olympics, Battle Ship, Capture the flag, Admin hosted Boss runs, Shiny parties, and much more! ▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬ 🖥️ Server Setting 🖥️ - XP Multiplier: 3x - Harvest Amount: 5x - Taming Speed: 10x - Breeding: 30x - Crop growth: 2x - Player food consumption: 0.5 - Player water consumption: 0.5 - Player weight stat: 15x - Player movement speed stat: 5x - Player crafting skill stat: 5x - Player fortitude stat: 5x - Wild dino Food consuption: 1.5x - Tamed dino Weight stat: 15x ▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬ 📀 Mod List 📀 - Shiny dinos! - Ark additions - Shads Atlas imports - Krakens better dinos - Roleplay appearal ▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬ 🏰 Structure Mods🏰 - Structures plus - Ckf remastered - Ckf science fiction - Ecos Highland homes - Ecos rp decor - Ecos Primal decor ▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬ 🧺 Qol Mods 🧺 - Lethals reusables - Awesome Spyglass - Awesome teleporter - Immersive taming - Dino Storage v2.0 - Hg stacking +1000 - 50 ▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬ 🏎️starter Kit to help you get started 🏎️ - Hide armor - Metal tools - Canteen - Awesome Spyglass - Awesome teleporter remote - Reusable bola - Reusable spear - Lvl 100 pteradon with saddle
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬ 🌎Maps 🌍 - The Island (Extension Cie) - Crystal isles - Fjordur - Gen2 - Rotational map (currently Extinction, rotates every month) (Event Map coming soon!) ▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬ Hope you will join us!! (Would love to see new players come enjoy the server and make lasting memories with us!)
🧑‍🤝‍🧑Discord 🧑‍🤝‍🧑

Link in my bio

-- https://discord.com/invite/xac5f9rQs6 ▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
submitted by Dapper_Difference663 to playarkservers [link] [comments]


2024.06.01 14:37 idkguessilljustgirl Final Update: my boyfriend killed my cat and i just can't do this anymore

Hi again everyone it's me, if you remember. I got a couple people in my dms asking how I'm doing and I'm allowed to write another update so... well. Here I am. Almost exactly 6 weeks since the worst 48 hours of my life.
I guess I'll just get into it since I'm using this as a diary at this point but I did also start journaling but journaling feels kind of lonely sometimes. And a lot has happened that I would appreciate everyone's thoughts on because you have all been really helpful. Thank you so much.
TL;DR: I'm back at work and getting on my feet and going to group art therapy. I met one of my boyfriend's old friends who's taking care of him and putting him through rehab. My old friends are coming back around and I'm trying to figure out how to be accountable and better for them. I'm ok, I'm safe, I'm almost happy.
I went back to work on May 1st because I promosed myself I would. I work at a smoothie shop, and we are a small team of 4 who usually work in pairs with my boss (the owner) there during rush hours and the baker who works before any of us come in.
When I came to open the shop that morning, the baker talked with me and asked how I was doing. I don't want people to know a lot but she has always been nice to me so I vented a little to her. I wasn't expecting how good it felt to talk to someone about everything that happened even not super detailed. Especially when she gave me such a big hug which made me cry tbh and told me to be strong and she was so happy I came back and didn't hide. 🥺
After talking to her and the coworker I usually work with, I felt better about therapy and stuff because talking does help. So when I got the call from that group therapy thing I wasn't as scared and didn't chicken out like I thought I would. I went and met people in my group, and it was a good experience. I am still going today.
A few days after the 1st I got a call from an unknown number. I don't normally answer those but with the situation and numbers I've been calling lately I didn't want to miss something important so I answered. A man introduced himself to me (I will call him "Tom") and told me he was a friend of my boyfriend "Luke".
I had never heard of this person before and I was just completely shocked and kind of just said "oh" and he started talking. He said he paid the rent for May for the suite and said he gave notice of ending the rental agreement, and asked if I wanted anything of mine from the place and if so he told me I had until the 11th before he dumped/sold stuff and start cleaning.
I came back to myself after that and was just like "hang on who are you and did you find Luke or what???" Because as far as I knew Luke was still missing and also I didn't know who he was.
So basically, a little background on Luke's life: He's originally from very very rural Quebec. He was taken into custody by the ministry when he was 8 after his mom passed away via sui and tried to take him with her because of his dad's extreme physical and sexual abuse towards both Luke and his mom. There were no foster resources in his town so he was taken to a bigger city and put with a family there.
He got into a lot of trouble with the ministry and police and kept having to get moved around due to threatening behavior towards his foster family (parents and siblings). Eventually he got into drinking and drugs and very badly beat up his younger foster brother and foster mother when he was 11 or 12. He got diagnosed with a conduct disorder and got put into juvie prison.
There was a project starting at that time in BC that was rehabilitation for juvie kids in MCFD custody. Basically they set up group homes that were staffed by social workers and counselors, like a foster home but run by a non-profit group not one family. This is actually something similar to where I grew up, but mine was for kids who "failed to thrive" in single-family care while Luke's was for kids who were criminals or addicts.
Because of his childhood situation and how they got him into custody, the MCFD wanted to see Luke go through one of those programs and hopefully be better. So they told him either the group home or juvie and he picked the group home, and a social worker from BC came to get him and flew him to the city. But in this new city even though he got to go back to public school and do stuff like gymnastics which he missed, he didn't know english as much and didn't have friends. So he started acting out again and got arrested more times.
Back to now. Tom told me that when he was in grade 10 and Luke was in grade 8, Tom joined a leadership club at his high school. Because of Luke's history he was forced into leadership club's "big brother" program with threat of being expelled if he didn't. Tom got assigned Luke in his "big brother" project, and they became friends, and then they became family all through high school and through Tom's first 3 years at uni. When he was telling me this I was blown away because Luke literally never even mentioned him so I finally just asked "well then why don't I know you? what happened?"
Tom said "Well, you know Luke." And I guess I do. Soooo yeah.
Luke showed up at Tom's childhood home a week after the stuff with Peanut, and Tom's parents called 911 because he was erratic and very high. The ambulance came and took him, and Tom went to the hospital to see him after his parents told him what happened.
At this point I had to go catch the bus but I told him we could text and meet and I wanted to help him clean the place too because I felt responsibility. He insisted it would be fine but I insisted I wanted to help so I texted him my schedule and we arranged a time to meet.
When I told my boss about all of this she and especially her husband asked if I could take a friend or if one of them could go. I told them I would ask my coworker since we have the same days off so I wouldn't trouble his busy schedule and definitely my boss should NOT go because she is getting so pregnant it's crazy and she needed to rest and still does need rest.
So my coworker I will call Nerd bc inside joke (who is male and big so that is helpful) agreed and we bussed to Luke's place. There was a car in front I didn't know so I assumed it was Tom's and sure enough he was there when I went in and was dealing with the fridge.
We shook hands and I introduced Nerd who kind of puffed up and made a stupid joke about beating Tom's ass over funny business but tbh the second I met Tom I got pretty OK vibes. But I guess well maybe I shouldn't trust it but really he was ok.
We went separately through the place and I spent most of my time in my "room" which was just a corner of the living room with a curtain tbh but my stuff was there so I packed it into garbage bags I brought. Kinda got flashbacks of packing as a kid which felt... weird tbh. 🙃
It also didn't help that Tom was kind of weird. Like not in a bad way but he would curse and mutter to himself when he found something gross or messed up like bad food, Luke's collection of drug stuff, that kind of thing. But then he would also tell me and Nerd what to do and where to put trash vs other stuff, but ALSO like... acted like he didn't want to touch anything himself? Like super cautious.
He also asked me stuff about my life here and how things were and what me and Luke did together, and I answered what I was comfortable with but he still kept apologizing and telling me he didn't want to know my personal stuff. Like it wasn't bad weird like I said but I think he was rly uncomfortable. He did pull me aside in the bathroom and asked if Luke ever hurt me and I was able to answer honestly and say no, he never even treated me that bad. But when I said that he kind of scoffed and muttered "that bad" like sarcastically and seemed mad so seriously it was. Weird. But idk if I were Tom I'd probably be pretty messed up about all of this so.
I insisted to help clean and Tom went to take the trash out. Nerd said he had to go soon bc he had an exam he had to study for and I said he could go and promised I'd be ok because I didn't get a bad vibe from Tom and Nerd admitted Tom seemed ok too. So he left but told me to call if I needed him bc he wouldn't be SUPER busy.
After saying goodbye I kind of asked Tom after a while what was going on with Luke. I just needed to know I guess? I don't know, I felt a lot of emotion being back there. Like I felt the love for him again and wished he was ok but Tom didn't tell me anything yet about where he was or how he was just that he was alive and reported found to police.
So... Luke's in rehab on the island. Tom talked to him in the hospital after he detoxed and said he explained the situation that happened. Apparently Luke broke down sobbing when he told him how he killed Peanut, and said the words: "I killed Peanut. I killed Peatie." Tom started crying while telling me this and tbh I cried too. I thanked Tom for being there bc Tom said he held him and comforted him and after all the hugs I got after Peanut and how that helped I'm just glad Luke got that too.
But yeah, so Tom told Luke it was time to get it together and Luke agreed. Tom seems hopeful it'll stick "this time," which he explained their original falling out was bc Luke lied to Tom about being sober after Tom put him through rehab once before. I really hope it will too and I am glad he has Tom to help him and pay for rehab bc it's not cheap especially those private places on the island but apparently the first time it failed it was in one of those cheap places in the DTES and Tom told me since he's been running programs there he's seen firsthand how those places are run and says the private is worth the money. Which I think is sad bc so many people are poor and need help too but it's complicated ig.
Tom offered me a ride home and I accepted. He told me before we got into the car that it would be ok if I wanted to text a picture of his license plate and car and ID to a safe person and I didn't even consider that so I felt kind of stupid but I did do that stuff and texted my boss and told her we were leaving. But tbh I wasn't worried. Tom seemed so nice and he gave me so much closure on what happened with Luke and knowing he's in good hands with someone that seems really sweet and put together makes me feel better about all the choices I made and also makes me feel like Peanut's loss has more meaning.
When I got home Tom introduced himself to my boss briefly and then we went in. She asked how everything went and I told her everything I wrote out here except I started crying hard and she cuddled me and told me to take it slow. But unlike other times I've cried since Peanut passed, that cry felt different. Like I was weak and emptied out, but not emptied out of all the good things, more like emptied out of the heavy things to make room for even more. And I haven't cried since. Not over Luke, and not over Peanut.
So I'm doing ok. Me and Tom met up twice more to clean the suite and I joined him for the inspection yesterday with the landlord. It felt good to leave that on a good note too, because the landlord let me move in back in fall which he didn't have to do especially with Peanut, and always treated us well. He told me that even though I wasn't an official tenant I could use him as a reference.
After the inspection yesterday Tom took me, my boss, boss' husband, and their daughter for dinner at a REALLY nice place which we all said was unnecessary but he insisted. He said really nice things to me about how he's grateful I tried so hard to take care of Luke and knows personally how difficult it is to love him. He promised me that nothing was my fault and that I can let it go now because he's going to take care of him and I should focus on moving forward into adulthood without any burdens. Idk maybe you had to be there but the way he said it was like... maybe I'm reading too much into it but it was like he was really specifically saying this stuff for Luke's sake or bc Luke hurt me and he felt like he had to make up to me? But it was nice either way.
Oh and I reconnected with a few of my old friends from high school!! The ones who I had a bad falling out with over Luke and my bad choices. My one friend Taylor reached out to me after I made my story on May 22nd a selfie of me reading that 'why does he do that' book and saying "1 month single 🙏" I guess a mutual mentioned it to Taylor and she added my number on sc again.
It's only kinda been small talk and stuff so far, but I've been trying to be really nice and I'm waiting for it to come up to take accountability for my bad treatment of the friend group but I'm thinking maybe I should say something first bc no one is bringing it up? Idk, if anyonr has advice I would appreciate it a lot bc I really want to be so much better than I am and I was and everything. For Peanut, but also for me.
This is the last update I'll post bc honestly it feels like things are mostly sorted out and I can't help but feel like I'm wasting people's time. 💀 But thanks again everyone and for those who wanted an update I hope you enjoy this freaking novel...
submitted by idkguessilljustgirl to TrueOffMyChest [link] [comments]


2024.06.01 14:34 shiftposting Is this just sleep deprivation?

Because of college sometimes I sleep very few hours at night, it happened that some days I didn't sleep at all. I know you can't "sleep bank" but I usually am too tired right after and I sleep for tons of hours (like 12-15 or more). I know I need to get a sleep study but I wanted to know if these things are normal for someone with adhd and sleep deprivation, what do you think, your experience, any advice, etc.
-It's impossible for me to wake up in the morning, tried everything: vibrating or super loud alarm clocks, hiding them, multiple ones (I set up three different ones minimum everyday), sunlight in the morning, caffeine on the nightstand. I always sleep through the alarm or get up just to turn them off then go back to sleep. Literally tried to have someone else call me on the phone to wake up but I answer and talk during my sleep, usually I lie and tell the person I am awake while still in bed or I am mean and tell them off (and then go back to sleep). People tried shaking me and talking to me in person too, but I still don't wake up and never remember the event happening either. -Very frequent sleep paralysis, usually right after falling asleep -Nightmares. Tons of nightmares. Sometimes every night for a week, and most of the time I have one as soon as I go to sleep (like less than 1 hour into sleeping). I almost never have a pleasant dream, I can count the ones I had IN MY LIFE on my fingers -Tired, so tired I have trouble doing anything. Often I come back from class and go to sleep for hours, then wake up at midnight. I fell asleep on the subway, during online class and one time during class in person too, but only once. I take multiple coffees per day and I am suffering accademically lol -Slurred speech, cannot remember words, forget tons of stuff, dissociating, not awarre of surrondings, -I used to wake up without any force in my arms but now it doesn't happen anymore, but sometimes I do feel weaker and have to sit down. I have POTS though, so, I don't know if it's that. -Sometimes I micro sleep, like I put an alarm for 10 minutes of sleep and when I wake up I am much more refreshed and usually feel great for hours.
I already take Wellbutrin, Equasym and Medikinet (both Ritalin but different forms) everyday (plus a lot of caffeine) for ADHD. I read some things about sleep apnea and narcolepsy but everyone around me tells me I just need to sleep more, or that it's sleep debt and it will go away with time (if I sleep normally) but it will take a while. I'm getting a sleep study this summer but will my sleep debt alter the results? Because I feel like i have permanent damage from years of sleep deprivation
submitted by shiftposting to sleepdisorders [link] [comments]


2024.06.01 14:33 MountainSkald [A Valkyrie's Saga] - Part 112

Prequel (Chapters 1 to 16)
1. Rise of a Valkyrie
First ¦ Previous ¦ Royal Road ¦ Patreon
When Kayla awoke, she found herself curled up on a couch in the Banshee’s infirmary. In the nearest bed, Thandi appeared to be sleeping peacefully. Across from her, Yak was hooked up to several scary looking tubes, but her vitals looked stable. Most of the rest of the beds were also filled. Another successful Valkyrie operation, Kayla thought, bitterly.
She didn’t remember the trip back from the planet. She did remember being told that nobody had found any sign of Rayker, and that memory kindled a little of the rage that never burned out. They had been through a nightmare for nothing.
“I wondered how long you would be asleep,” a voice said.
Kayla turned to see Christie sat on the end of her couch. Her friend seemed to be weighed down by sadness as she put aside the tablet she was typing on and smiled back at her.
“Wha— uh…” Kayla managed, as her stiff tongue flapped helplessly. She yawned and stretched.
“Twenty-three wounded in total,” Christie said. “Thandi will walk again in a week. Yak’s going to be in a coma for the next month. Fortunately, nothing struck her vital organs. And, by the way, one of the Raider squads was also involved in a friendly fire incident.”
Kayla focused on her, then looked away. “Jesus,” she said to herself. “God dammit.”
“Thandi wouldn’t like that,” Christie scolded. “Heathen.”
Kayla stood up and began to pace slowly as she wrapped her arms around herself. “I can’t believe I—”
“I’m going to stop you right there,” Christie said, “because you’ve been asleep for about ten hours. In the interim, I was able to speak with several Rangers about what happened. It was not your fault. Not entirely.”
Kayla shook her head. “Yes, it was. Oh, God, yes it was. I should have seen them, I should have had a stronger optic, I should have—”
“Corporal Rudaski misread her map. So did the leader of second squad. You were both actually in hall hotel-four. The base was constructed in a circular pattern of radially linked zones, orbiting a central facility. It’s a highly abstract layout that we have never seen before. Most Ranger battalions have spent the last several centuries clearing logical, grid-like layouts in ships and bunkers. Under fire, it is easy to see how confusion caused units to lose track of their positions as they advanced. Most of the platoons did, actually, at one point or another. And, in my opinion, we did not have anything like the troop numbers needed to comfortably secure that site. A consequence, no doubt, of Valkyrie’s failure to prepare and train for large scale deployments, for which there has been no requirement in at least a millennia, so they tell me.”
Kayla turned to her with a puzzled expression. “You figured all that out already?”
“I’m drafting a report on the matter. I can’t sleep, you see, because the flaws of this operation stem entirely from the task force’s desire to follow Rayker until she discovered the tracker. We found it in the central command chamber. It was sealed in a wrapping of fat and muscle tissue, which she obviously cut out of herself hours before the tamper alarm sensed the toxins of cell decay. She left it there for us to find. To taunt us, no doubt.”
Christie yawned deeply, stood up and brushed her sweater off. “Do you see, Kayla, that the intelligence team were making decisions based off of my actions on Ambrosia, when I planted that device?” She smiled bitterly. “And I had the arrogance to think I was outwitting the woman. So, in a way, it’s my fault.”
Kayla swallowed and slowly shook her head. Then she grabbed her friend and held her in a tight hug. “War sucks,” she said. “Everything about it is awful.”
“I agree. Nevertheless, we are drawn to it, like moths to a flame perhaps?”
Kayla released her and collapsed into the couch. “When I slept, I had a dream. I was in Plato’s cave, but I got free. Outside there was a dragon, burning everything in sight. The world was covered in ash, and the puppets casting shadows were dead bodies,” She wiped moisture out of her eye. “He said, ‘come out and play, little girl’.”
Christie nodded. “We were lucky nobody was killed today. Rayker will certainly cost us more blood before we manage to catch her. She could have set up a much stronger defense than a battalion of light combat drones, but she didn’t.”
Kayla reached into her pocket and found her necklace. She placed it over her head and ran a thumb over the engraved name.
She looked back at Christie. “Why not?”
“The freighter the Sirène caught was carrying several large combat walkers, produced by that plant. A deep space survey revealed that a second freighter had jumped away earlier. No doubt Rayker’s escape—she seems to have plotted a course opposite the star from where we stopped at the minefield. There seems to be no question that she had the main force of those machines with her.”
“Any idea where they went?”
Christie turned away to retrieve her tablet. “Not yet, unfortunately.”
“May the saints have mercy,” said a voice, “if a shot up woman cannot get a wink of sleep with all the talking in here.”
Kayla whirled around to see Thandi, sitting up in her bed. She darted over and grabbed her into a bearhug.
“I’m really sorry I got you shot,” she said.
“Yeah,” Thandi said looking pleased with herself. “And to apologize, you’ll be fetching me chocolate cake from the mess until I get out of here.” She lowered her voice. “Seriously though, Kayla, I need you. The food is terrible.”
Kayla chuckled. “You can count on me.”
“How are you feeling, wonder woman?”
“Oh, uh… not that wonderful to be honest.”
“Leaping tall structures in a single bound?” Thandi grinned admiringly at her. “You had a bit of a superhero moment.”
Kayla raised her eyebrows. “I tore half the muscles in my body. It was definitely not awesome.”
“Sure looked like it. I don’t even know how you do stuff like that. The Lord moved you.”
Christie cleared her throat and gave Thandi a significant look.
Thandi rolled her eyes. “It’s a compliment—I’m not diminishing what you did.”
Kayla returned her cheerful gaze with a flat expression. She had felt like everyone she cared about was about to die. Like her soul had been lit on fire, and the only way to put it out had been to move like a lightning bolt. It was not something she ever wanted to experience again.
“I was on probation for the incident on Ambrosia,” she reminded Thandi. “I will definitely be dropped back to private from now on.”
“Oh,” Thandi’s sparkling eyes darkened. “Well, that sucks. I hope they don’t. You straight up saved us all from an ambush at the start of that firefight. And the illume drone—you made lots of good calls down there.”
Kayla shook her head. “I shouldn’t be a team leader. I keep losing control. I can’t let… I don’t respond well when any of you are in danger.”
Thandi grabbed her hand, and squeezed it. “What happens to us is not up to you, my dear. It’s in God’s hands alone.”
Kayla didn’t know what to say. She wasn’t sure if she could accept that.
“How’s the pain?” Christie asked.
“Oh,” Thandi said and waved her hand. “Nothing too severe. I think of how Rose would be responding, and I know I can handle anything.”
Christie nodded silently.
“She speaks to me, in my dreams. She tells me how proud she is of us.” Thandi glanced at Kayla. “She says you are a true leader.”
Kayla turned away, unable to keep her eyes from tearing up.
“Will you be up in time for the merger?” Christie asked.
“On crutches maybe,” Thandi said. “But I wouldn’t miss it for the world. I can’t imagine anything more glorious.”
“What’s that?” Kayla asked before slowly turning back.
“The Banshee is returning to Tyr,” Christie explained. “On the way back, we have been tasked with collecting a probe that was observing a binary star merger. We will have the opportunity to observe the event live.”
“Whatever,” Kayla said with an eye roll. She was a little offended that their task force had been assigned a science project after what had happened. “Nerd stuff, right?”
Christie laughed, and met Thandi’s eyes with a smirk. “If you say so.”
Thandi shifted against her pillows. “How is the mood of the ship?” she said to Christie. “Are people still angry?”
“What do you mean?” Kayla cut in.
Thandi glanced back and forth between them. “You didn’t tell her?”
Christie waved a dismissive hand. “Oh, but with all that’s happening I didn’t think it pertinent. Why add to our already substantial burdens?”
“What’s going on?” Kayla demanded, and felt her hair stand on end.
Christie smiled tightly. “ODT Four seized the freighter and searched it thoroughly. No evidence of Rayker, as I said.”
“Yeah? And?”
“Well, they found a false compartment in one of the holds. And there were a pair of young teenagers inside. A boy and a girl.”
“In rags, and chained up,” Thandi added.
Kayla realized her jaw had clenched. She felt her skin crawl with a new kind of horror. “Oh my God,” she said, then glanced at Thandi. “Sorry.”
“In this case you get a dispensation.”
“Obviously,” Christie continued, “the pour souls will be returned to their families. A terrible situation.”
Kayla’s mind buzzed with questions. “What is—uh… where was it from? The ship?”
“Intaba,” Thandi said sullenly. “A VennZech registered vessel. Justice cannot come swiftly enough for the demon scum who perpetrated this evil on my homeworld…” she frowned as she lost her words, and clenched her fists together.
“Do you think Valkyrie will start interdicting their ships?” Kayla asked.
“No,” Christie said. “Hence the angry mood. It is a problem the organization has faced since humanity took to the stars. The chieftains have resolutely refused to address it. Our mission statement is to protect humanity, not interfere with their conduct. Frankly I have to agree with them, though I appear to be in the minority.”
Kayla stared at her incredulously. “But that’s bullshit,” she said. “How can you be okay with letting something like that go?”
Christie arched an eyebrow. “A secret army of super soldiers, with access to civilization destroying technology, and who answer—as far as we know—to nobody but themselves? The very thought of interfering gives me an existential crisis. However tragic the situation, it seems obvious that we must maintain our distance.”
Kayla shook her head. She already felt hot anger driving her to act. How could such monsters be allowed to walk freely in a just galaxy?
“All that it takes for evil to succeed—” Thandi began.
“Please can we not continue this conversation?” Christie snapped. “I’ve had enough of being insulted by some of my colleagues. I don’t want it from my friends too.”
Kayla exchanged looks with Thandi, but she owed her best friend the space she wanted.
“I promise, I won’t bring it up again, Chris,” she said.
***
Kayla ate in the ship’s mess then returned to her bunk, where the rest of the squad were waiting. They were talking in somber tones, but fell silent when she approached.
Kes stood up and beckoned to her. “Platoon ready room, this way.”
Once shut away in privacy, Kes sat her down and they retraced every event that had occurred inside the base. Every decision was picked apart minutely, with no judgement or grievance allowed.
“I needed us to go through this as soon as possible,” she explained. “This will sit with you for the rest of your life. We all made mistakes, but nobody should feel incriminated. I have been through five blue on blue incidents. This shit just happens, and I guarantee it will happen to you again in the future.”
Kayla felt a little relief as she spoke with her squad leader and found that she was neither alone, nor justified in hating herself. They had been moving quickly through a confusing environment, making a deadly situation much more likely.
“One last thing, though,” Kes added somberly. “Private Voigt from second squad fired the burst that hit Yak and Thandi. She is being removed from the battalion. By her own account, she returned Yak’s fire without any kind of communication with her team leader, or any attempt to check the position of friendlies. That was a major SOP violation when she knew they were expecting to move in our direction.”
Kayla absorbed this with shock. She couldn’t argue with it; after all, what good was a Ranger who couldn’t do her job? And didn’t that mean that the same punishment should apply to her?
She cleared her throat. Terror gnawed at her insides as Kes stared at her expectantly.
“I lost control again,” Kayla said.
“Yup,” Kes said, and rubbed her eyes with obvious frustration. “And this time, your actions swiftly ended a dangerous firefight following a terrible accident. Yak got immediate medical attention because of that. On the other hand, you put yourself in a position to be killed or wounded where no-one could help you.”
There was a long pause while the corporal appeared to search a distant horizon. “You don’t need a lecture, and Akane can’t make a decision on you. Yak was my next choice for Lance Corporal, but she’s out of action, along with a bunch of others. Together with this Rayker shitshow, it is not the time to be shuffling people around.”
Kayla’s brow furrowed “What about Ray?”
“Oh,” Kes ran a hand through her hair. “Every time I’ve offered it, she’s refused. Anyway, we’ve already been told by Captain Aguilar to expect a new private out of Ranger school once we return to Tyr.”
“Yes, Corporal,” Kayla said, unsure what to think about the decision.
“I’ve seen you make good decisions in the field. But I will push to replace you when the opportunity comes up again.” Kes narrowed her eyes. “Unless you can show me I’m wrong before that happens.”
Kayla left the room with her head spinning. She was keeping her job, even though she obviously didn’t have what it took to lead Rangers in combat.
First ¦ Previous ¦ Royal Road ¦ Patreon
Prequel (Chapters 1 to 16)
1. Rise of a Valkyrie
submitted by MountainSkald to redditserials [link] [comments]


2024.06.01 14:30 MountainSkald A Valkyrie's Saga - Part 112

Prequel (Parts 1 to 16)
1. Rise of a Valkyrie
First ¦ Previous ¦ Royal Road ¦ Patreon
When Kayla awoke, she found herself curled up on a couch in the Banshee’s infirmary. In the nearest bed, Thandi appeared to be sleeping peacefully. Across from her, Yak was hooked up to several scary looking tubes, but her vitals looked stable. Most of the rest of the beds were also filled. Another successful Valkyrie operation, Kayla thought, bitterly.
She didn’t remember the trip back from the planet. She did remember being told that nobody had found any sign of Rayker, and that memory kindled a little of the rage that never burned out. They had been through a nightmare for nothing.
“I wondered how long you would be asleep,” a voice said.
Kayla turned to see Christie sat on the end of her couch. Her friend seemed to be weighed down by sadness as she put aside the tablet she was typing on and smiled back at her.
“Wha— uh…” Kayla managed, as her stiff tongue flapped helplessly. She yawned and stretched.
“Twenty-three wounded in total,” Christie said. “Thandi will walk again in a week. Yak’s going to be in a coma for the next month. Fortunately, nothing struck her vital organs. And, by the way, one of the Raider squads was also involved in a friendly fire incident.”
Kayla focused on her, then looked away. “Jesus,” she said to herself. “God dammit.”
“Thandi wouldn’t like that,” Christie scolded. “Heathen.”
Kayla stood up and began to pace slowly as she wrapped her arms around herself. “I can’t believe I—”
“I’m going to stop you right there,” Christie said, “because you’ve been asleep for about ten hours. In the interim, I was able to speak with several Rangers about what happened. It was not your fault. Not entirely.”
Kayla shook her head. “Yes, it was. Oh, God, yes it was. I should have seen them, I should have had a stronger optic, I should have—”
“Corporal Rudaski misread her map. So did the leader of second squad. You were both actually in hall hotel-four. The base was constructed in a circular pattern of radially linked zones, orbiting a central facility. It’s a highly abstract layout that we have never seen before. Most Ranger battalions have spent the last several centuries clearing logical, grid-like layouts in ships and bunkers. Under fire, it is easy to see how confusion caused units to lose track of their positions as they advanced. Most of the platoons did, actually, at one point or another. And, in my opinion, we did not have anything like the troop numbers needed to comfortably secure that site. A consequence, no doubt, of Valkyrie’s failure to prepare and train for large scale deployments, for which there has been no requirement in at least a millennia, so they tell me.”
Kayla turned to her with a puzzled expression. “You figured all that out already?”
“I’m drafting a report on the matter. I can’t sleep, you see, because the flaws of this operation stem entirely from the task force’s desire to follow Rayker until she discovered the tracker. We found it in the central command chamber. It was sealed in a wrapping of fat and muscle tissue, which she obviously cut out of herself hours before the tamper alarm sensed the toxins of cell decay. She left it there for us to find. To taunt us, no doubt.”
Christie yawned deeply, stood up and brushed her sweater off. “Do you see, Kayla, that the intelligence team were making decisions based off of my actions on Ambrosia, when I planted that device?” She smiled bitterly. “And I had the arrogance to think I was outwitting the woman. So, in a way, it’s my fault.”
Kayla swallowed and slowly shook her head. Then she grabbed her friend and held her in a tight hug. “War sucks,” she said. “Everything about it is awful.”
“I agree. Nevertheless, we are drawn to it, like moths to a flame perhaps?”
Kayla released her and collapsed into the couch. “When I slept, I had a dream. I was in Plato’s cave, but I got free. Outside there was a dragon, burning everything in sight. The world was covered in ash, and the puppets casting shadows were dead bodies,” She wiped moisture out of her eye. “He said, ‘come out and play, little girl’.”
Christie nodded. “We were lucky nobody was killed today. Rayker will certainly cost us more blood before we manage to catch her. She could have set up a much stronger defense than a battalion of light combat drones, but she didn’t.”
Kayla reached into her pocket and found her necklace. She placed it over her head and ran a thumb over the engraved name.
She looked back at Christie. “Why not?”
“The freighter the Sirène caught was carrying several large combat walkers, produced by that plant. A deep space survey revealed that a second freighter had jumped away earlier. No doubt Rayker’s escape—she seems to have plotted a course opposite the star from where we stopped at the minefield. There seems to be no question that she had the main force of those machines with her.”
“Any idea where they went?”
Christie turned away to retrieve her tablet. “Not yet, unfortunately.”
“May the saints have mercy,” said a voice, “if a shot up woman cannot get a wink of sleep with all the talking in here.”
Kayla whirled around to see Thandi, sitting up in her bed. She darted over and grabbed her into a bearhug.
“I’m really sorry I got you shot,” she said.
“Yeah,” Thandi said looking pleased with herself. “And to apologize, you’ll be fetching me chocolate cake from the mess until I get out of here.” She lowered her voice. “Seriously though, Kayla, I need you. The food is terrible.”
Kayla chuckled. “You can count on me.”
“How are you feeling, wonder woman?”
“Oh, uh… not that wonderful to be honest.”
“Leaping tall structures in a single bound?” Thandi grinned admiringly at her. “You had a bit of a superhero moment.”
Kayla raised her eyebrows. “I tore half the muscles in my body. It was definitely not awesome.”
“Sure looked like it. I don’t even know how you do stuff like that. The Lord moved you.”
Christie cleared her throat and gave Thandi a significant look.
Thandi rolled her eyes. “It’s a compliment—I’m not diminishing what you did.”
Kayla returned her cheerful gaze with a flat expression. She had felt like everyone she cared about was about to die. Like her soul had been lit on fire, and the only way to put it out had been to move like a lightning bolt. It was not something she ever wanted to experience again.
“I was on probation for the incident on Ambrosia,” she reminded Thandi. “I will definitely be dropped back to private from now on.”
“Oh,” Thandi’s sparkling eyes darkened. “Well, that sucks. I hope they don’t. You straight up saved us all from an ambush at the start of that firefight. And the illume drone—you made lots of good calls down there.”
Kayla shook her head. “I shouldn’t be a team leader. I keep losing control. I can’t let… I don’t respond well when any of you are in danger.”
Thandi grabbed her hand, and squeezed it. “What happens to us is not up to you, my dear. It’s in God’s hands alone.”
Kayla didn’t know what to say. She wasn’t sure if she could accept that.
“How’s the pain?” Christie asked.
“Oh,” Thandi said and waved her hand. “Nothing too severe. I think of how Rose would be responding, and I know I can handle anything.”
Christie nodded silently.
“She speaks to me, in my dreams. She tells me how proud she is of us.” Thandi glanced at Kayla. “She says you are a true leader.”
Kayla turned away, unable to keep her eyes from tearing up.
“Will you be up in time for the merger?” Christie asked.
“On crutches maybe,” Thandi said. “But I wouldn’t miss it for the world. I can’t imagine anything more glorious.”
“What’s that?” Kayla asked before slowly turning back.
“The Banshee is returning to Tyr,” Christie explained. “On the way back, we have been tasked with collecting a probe that was observing a binary star merger. We will have the opportunity to observe the event live.”
“Whatever,” Kayla said with an eye roll. She was a little offended that their task force had been assigned a science project after what had happened. “Nerd stuff, right?”
Christie laughed, and met Thandi’s eyes with a smirk. “If you say so.”
Thandi shifted against her pillows. “How is the mood of the ship?” she said to Christie. “Are people still angry?”
“What do you mean?” Kayla cut in.
Thandi glanced back and forth between them. “You didn’t tell her?”
Christie waved a dismissive hand. “Oh, but with all that’s happening I didn’t think it pertinent. Why add to our already substantial burdens?”
“What’s going on?” Kayla demanded, and felt her hair stand on end.
Christie smiled tightly. “ODT Four seized the freighter and searched it thoroughly. No evidence of Rayker, as I said.”
“Yeah? And?”
“Well, they found a false compartment in one of the holds. And there were a pair of young teenagers inside. A boy and a girl.”
“In rags, and chained up,” Thandi added.
Kayla realized her jaw had clenched. She felt her skin crawl with a new kind of horror. “Oh my God,” she said, then glanced at Thandi. “Sorry.”
“In this case you get a dispensation.”
“Obviously,” Christie continued, “the pour souls will be returned to their families. A terrible situation.”
Kayla’s mind buzzed with questions. “What is—uh… where was it from? The ship?”
“Intaba,” Thandi said sullenly. “A VennZech registered vessel. Justice cannot come swiftly enough for the demon scum who perpetrated this evil on my homeworld…” she frowned as she lost her words, and clenched her fists together.
“Do you think Valkyrie will start interdicting their ships?” Kayla asked.
“No,” Christie said. “Hence the angry mood. It is a problem the organization has faced since humanity took to the stars. The chieftains have resolutely refused to address it. Our mission statement is to protect humanity, not interfere with their conduct. Frankly I have to agree with them, though I appear to be in the minority.”
Kayla stared at her incredulously. “But that’s bullshit,” she said. “How can you be okay with letting something like that go?”
Christie arched an eyebrow. “A secret army of super soldiers, with access to civilization destroying technology, and who answer—as far as we know—to nobody but themselves? The very thought of interfering gives me an existential crisis. However tragic the situation, it seems obvious that we must maintain our distance.”
Kayla shook her head. She already felt hot anger driving her to act. How could such monsters be allowed to walk freely in a just galaxy?
“All that it takes for evil to succeed—” Thandi began.
“Please can we not continue this conversation?” Christie snapped. “I’ve had enough of being insulted by some of my colleagues. I don’t want it from my friends too.”
Kayla exchanged looks with Thandi, but she owed her best friend the space she wanted.
“I promise, I won’t bring it up again, Chris,” she said.
***
Kayla ate in the ship’s mess then returned to her bunk, where the rest of the squad were waiting. They were talking in somber tones, but fell silent when she approached.
Kes stood up and beckoned to her. “Platoon ready room, this way.”
Once shut away in privacy, Kes sat her down and they retraced every event that had occurred inside the base. Every decision was picked apart minutely, with no judgement or grievance allowed.
“I needed us to go through this as soon as possible,” she explained. “This will sit with you for the rest of your life. We all made mistakes, but nobody should feel incriminated. I have been through five blue on blue incidents. This shit just happens, and I guarantee it will happen to you again in the future.”
Kayla felt a little relief as she spoke with her squad leader and found that she was neither alone, nor justified in hating herself. They had been moving quickly through a confusing environment, making a deadly situation much more likely.
“One last thing, though,” Kes added somberly. “Private Voigt from second squad fired the burst that hit Yak and Thandi. She is being removed from the battalion. By her own account, she returned Yak’s fire without any kind of communication with her team leader, or any attempt to check the position of friendlies. That was a major SOP violation when she knew they were expecting to move in our direction.”
Kayla absorbed this with shock. She couldn’t argue with it; after all, what good was a Ranger who couldn’t do her job? And didn’t that mean that the same punishment should apply to her?
She cleared her throat. Terror gnawed at her insides as Kes stared at her expectantly.
“I lost control again,” Kayla said.
“Yup,” Kes said, and rubbed her eyes with obvious frustration. “And this time, your actions swiftly ended a dangerous firefight following a terrible accident. Yak got immediate medical attention because of that. On the other hand, you put yourself in a position to be killed or wounded where no-one could help you.”
There was a long pause while the corporal appeared to search a distant horizon. “You don’t need a lecture, and Akane can’t make a decision on you. Yak was my next choice for Lance Corporal, but she’s out of action, along with a bunch of others. Together with this Rayker shitshow, it is not the time to be shuffling people around.”
Kayla’s brow furrowed “What about Ray?”
“Oh,” Kes ran a hand through her hair. “Every time I’ve offered it, she’s refused. Anyway, we’ve already been told by Captain Aguilar to expect a new private out of Ranger school once we return to Tyr.”
“Yes, Corporal,” Kayla said, unsure what to think about the decision.
“I’ve seen you make good decisions in the field. But I will push to replace you when the opportunity comes up again.” Kes narrowed her eyes. “Unless you can show me I’m wrong before that happens.”
Kayla left the room with her head spinning. She was keeping her job, even though she obviously didn’t have what it took to lead Rangers in combat.
First ¦ Previous ¦ Royal Road ¦ Patreon
Prequel (Parts 1 to 16)
1. Rise of a Valkyrie
submitted by MountainSkald to HFY [link] [comments]


2024.06.01 14:28 PlasticDrawer4908 Finally Completed my Top 10!

Finally Completed my Top 10!
The Deoxys came in yesterday and I was able to complete my top 10 cards! (Plus some very honorable mentions)
I love the variety of types of cards and different sets. My brothers and I started collecting in High school during Sun and Moon when the Rainbow Rare Reshiram and Charizard was the biggest pull. When I saw that it was going for just over a hundred dollars on TCG I knew I had to get it.
I love the variety in types of cards and all the colors.
My brother pulled the Lugia in his car and texted us the video. He didn’t realize how big of a pull it was. I was going crazy in our group chat!
It’s been so fun to collect and open with them recently, we’ve pulled the Paldean Fates Charizard and Clive and were going crazy for both.
I solidified this list before Temporal Forces so the Iron Crown, Walking Wake and now the new Greninja SARs might have to go on the list somewhere.
Thanks for reading! 😄
submitted by PlasticDrawer4908 to PokemonTCG [link] [comments]


2024.06.01 14:25 Jonasbru3m TensorFlow Model Only Predicts 2 Classes out of 475

Hello Reddit Community,
For my Bachelor Thesis im currently trying to train my first ever model with tensorflow, but I'm encountering a strange issue where my model only predicts 2 classes out of the 475 possible classes. The model was trained on a HPC with 304 Nvidia A100 and 352 Nvidia A40 GPGPUs in 82 nodes.
Thats my training script:
 import os import tensorflow as tf from tensorflow.keras.preprocessing.image import ImageDataGenerator from tensorflow.keras.applications import EfficientNetB7 from tensorflow.keras import layers, models from tensorflow.keras.callbacks import ModelCheckpoint, TensorBoard import tensorflow_addons as tfa import logging import json # Setup logging logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s') # Check if GPUs are available gpus = tf.config.experimental.list_physical_devices('GPU') if gpus: try: for gpu in gpus: tf.config.experimental.set_memory_growth(gpu, True) tf.config.set_visible_devices(gpus, 'GPU') logging.info(f"Using {len(gpus)} GPUs.") except RuntimeError as e: logging.error(e) else: logging.error("No GPUs found. Check your device configuration.") # Data directory data_dir = "/app/FOOD475/" # Image dimensions and batch size img_height, img_width = 600, 600 batch_size = 64 # Data preprocessing and augmentation train_datagen = ImageDataGenerator( rescale=1./255, rotation_range=40, width_shift_range=0.2, height_shift_range=0.2, shear_range=0.2, zoom_range=0.2, horizontal_flip=True, fill_mode='nearest', validation_split=0.25 ) # Load and preprocess images train_generator = train_datagen.flow_from_directory( data_dir, target_size=(img_height, img_width), batch_size=batch_size, class_mode='categorical', subset='training' ) validation_generator = train_datagen.flow_from_directory( data_dir, target_size=(img_height, img_width), batch_size=batch_size, class_mode='categorical', subset='validation' ) # Model creation function def create_model(input_shape, num_classes): base_model = EfficientNetB7(include_top=False, input_shape=input_shape, weights='imagenet') base_model.trainable = True inputs = layers.Input(shape=input_shape) x = base_model(inputs, training=True) x = layers.GlobalAveragePooling2D()(x) outputs = layers.Dense(num_classes, activation='softmax')(x) model = models.Model(inputs, outputs) return model def find_latest_saved_model(checkpoint_dir): logging.info(f"Looking in checkpoint directory: {checkpoint_dir}") if not os.path.exists(checkpoint_dir): logging.error(f"Checkpoint directory does not exist: {checkpoint_dir}") return None, 0 subdirs = [os.path.join(checkpoint_dir, d) for d in os.listdir(checkpoint_dir) if os.path.isdir(os.path.join(checkpoint_dir, d))] if not subdirs: logging.info("No subdirectories found for checkpoints.") return None, 0 latest_subdir = max(subdirs, key=lambda x: int(os.path.basename(x))) latest_epoch = int(os.path.basename(latest_subdir)) logging.info(f"Latest model directory: {latest_subdir}, Epoch: {latest_epoch}") if os.path.exists(os.path.join(latest_subdir, 'saved_model.pb')): return latest_subdir, latest_epoch else: logging.info("No saved_model.pb found in the latest directory.") return None, 0 # Mirrored strategy for multi-GPU training strategy = tf.distribute.MirroredStrategy() with strategy.scope(): saved_model_dir = 'model_training' checkpoint_dir = os.path.join(saved_model_dir, 'checkpoints') latest_saved_model, latest_epoch = find_latest_saved_model(checkpoint_dir) if latest_saved_model: logging.info(f"Loading model from {latest_saved_model}") model = tf.keras.models.load_model(latest_saved_model) else: logging.info("No saved model found. Creating a new model.") model = create_model((img_height, img_width, 3), len(train_generator.class_indices)) if not os.path.exists(saved_model_dir): os.makedirs(saved_model_dir) summary_path = os.path.join(saved_model_dir, 'model_summary.txt') with open(summary_path, 'w') as f: model.summary(print_fn=lambda x: f.write(x + '\n')) logging.info(f"Model summary saved to {summary_path}") optimizer = tf.keras.optimizers.Adam(learning_rate=0.0002) model.compile(optimizer=optimizer, loss='categorical_crossentropy', metrics=['accuracy', tf.keras.metrics.TopKCategoricalAccuracy(k=5), tfa.metrics.F1Score(num_classes=len(train_generator.class_indices), average='macro')]) # Custom Callback for Saving the Best Model in SavedModel format class SaveBestModelTF(tf.keras.callbacks.Callback): def __init__(self, monitor='val_accuracy', saved_model_dir='model_training'): super(SaveBestModelTF, self).__init__() self.monitor = monitor self.saved_model_dir = saved_model_dir def on_epoch_end(self, epoch, logs=None): current = logs.get(self.monitor) if current is None: logging.warning(f"Monitor '{self.monitor}' for saving the model is not available in logs.") return logging.info(f"Epoch {epoch + 1}: saving model to {self.saved_model_dir}/checkpoints/{epoch + 1}") epoch_path = os.path.join(self.saved_model_dir, 'checkpoints', str(epoch + 1)) if not os.path.exists(epoch_path): os.makedirs(epoch_path) self.model.save(epoch_path, save_format='tf') # Callbacks for monitoring progress tensorboard_cb = TensorBoard(log_dir='./logs') # Save class indices to a JSON file class_indices_path = 'model_training/class_indices.json' if not os.path.exists(os.path.dirname(class_indices_path)): os.makedirs(os.path.dirname(class_indices_path), exist_ok=True) logging.info(f"Directory {os.path.dirname(class_indices_path)} created.") with open(class_indices_path, 'w') as file: json.dump(train_generator.class_indices, file) logging.info(f"Class indices saved to {class_indices_path}") # Model training total_epochs = 7 model.fit( train_generator, initial_epoch=latest_epoch, # Start from the next epoch epochs=total_epochs, validation_data=validation_generator, callbacks=[SaveBestModelTF(saved_model_dir=saved_model_dir), tensorboard_cb] ) # Evaluate the model eval_result = model.evaluate(validation_generator) logging.info(f'Validation Loss: {eval_result[0]}, Validation Accuracy: {eval_result[1]}') # Save the final model as a SavedModel format (including .pb files) model.save('model_training/finished_model') logging.info("Finished model saved in SavedModel format at 'model_training/finished_model'") # Convert to TensorFlow Lite converter = tf.lite.TFLiteConverter.from_saved_model('model_training/finished_model') tflite_model = converter.convert() tflite_path = 'model_training/lite_model/trained_model_lite.tflite' if not os.path.exists(os.path.dirname(tflite_path)): os.makedirs(os.path.dirname(tflite_path), exist_ok=True) logging.info(f"Directory {os.path.dirname(tflite_path)} created.") with open(tflite_path, 'wb') as f: f.write(tflite_model) logging.info(f"Model converted and saved as {tflite_path}") 
During training i got following output:
Found 182235 images belonging to 475 classes. Found 60544 images belonging to 475 classes. Epoch 1/7 2848/2848 [==============================] - 11914s 4s/step - loss: 1.7624 - accuracy: 0.5931 - top_k_categorical_accuracy: 0.8152 - f1_score: 0.4739 - val_loss: 1.1666 - val_accuracy: 0.7043 - val_top_k_categorical_accuracy: 0.9013 - val_f1_score: 0.6053 Epoch 2/7 2848/2848 [==============================] - 11096s 4s/step - loss: 0.8293 - accuracy: 0.7788 - top_k_categorical_accuracy: 0.9435 - f1_score: 0.7094 - val_loss: 0.9409 - val_accuracy: 0.7533 - val_top_k_categorical_accuracy: 0.9277 - val_f1_score: 0.6818 Epoch 3/7 2848/2848 [==============================] - 11123s 4s/step - loss: 0.6247 - accuracy: 0.8274 - top_k_categorical_accuracy: 0.9632 - f1_score: 0.7760 - val_loss: 0.8422 - val_accuracy: 0.7761 - val_top_k_categorical_accuracy: 0.9386 - val_f1_score: 0.7080 Epoch 4/7 2848/2848 [==============================] - 11101s 4s/step - loss: 0.5070 - accuracy: 0.8562 - top_k_categorical_accuracy: 0.9743 - f1_score: 0.8165 - val_loss: 0.8002 - val_accuracy: 0.7885 - val_top_k_categorical_accuracy: 0.9428 - val_f1_score: 0.7249 Epoch 5/7 2848/2848 [==============================] - 11079s 4s/step - loss: 0.4261 - accuracy: 0.8766 - top_k_categorical_accuracy: 0.9814 - f1_score: 0.8445 - val_loss: 0.7757 - val_accuracy: 0.7940 - val_top_k_categorical_accuracy: 0.9458 - val_f1_score: 0.7404 Epoch 6/7 2848/2848 [==============================] - 11100s 4s/step - loss: 0.3641 - accuracy: 0.8932 - top_k_categorical_accuracy: 0.9856 - f1_score: 0.8657 - val_loss: 0.7639 - val_accuracy: 0.8003 - val_top_k_categorical_accuracy: 0.9472 - val_f1_score: 0.7432 Epoch 7/7 2848/2848 [==============================] - 11129s 4s/step - loss: 0.3142 - accuracy: 0.9068 - top_k_categorical_accuracy: 0.9889 - f1_score: 0.8838 - val_loss: 0.7701 - val_accuracy: 0.8014 - val_top_k_categorical_accuracy: 0.9470 - val_f1_score: 0.7474 946/946 [==============================] - 2671s 3s/step - loss: 0.7682 - accuracy: 0.8008 - top_k_categorical_accuracy: 0.9470 - f1_score: 0.7456 
And when I try to load the model and make a prediction with this code:
class own: def __init__(self): if not os.path.exists("models/own"): raise FileNotFoundError(f"Model path models/own does not exist") try: self.model = tf.keras.models.load_model("models/own", custom_objects={'F1Score': F1Score}) except Exception as e: print(f"Error loading model: {e}") raise if not os.path.exists("models/own/class_indices.json"): raise FileNotFoundError(f"Class indices path models/own/class_indices.json does not exist") with open("models/own/class_indices.json", 'r') as file: self.class_indices = json.load(file) self.index_to_class = {v: k for k, v in self.class_indices.items()} def classify(self, img_path): if not os.path.exists(img_path): raise FileNotFoundError(f"Image path {img_path} does not exist") # Load and preprocess the image img = tf.keras.preprocessing.image.load_img(img_path, target_size=(600, 600)) img_array = tf.keras.preprocessing.image.img_to_array(img) img_array = np.expand_dims(img_array, axis=0) img_array /= 255.0 # Make prediction predictions = self.model.predict(img_array) print("Raw predictions:", predictions) top_index = np.argmax(predictions[0]) top_class = self.index_to_class[top_index] print(f"Top class: {top_class}, Probability: {predictions[0][top_index]}") top_n = 5 top_indices = np.argsort(predictions[0])[-top_n:][::-1] for idx in top_indices: print(f"Class: {self.index_to_class[idx]}, Probability: {predictions[0][idx]}") return top_class 
it always either predicts Steak or Omelette:
2024-06-01 14:17:27.571776: I tensorflow/core/util/port.cc:113] oneDNN custom operations are on. You may see slightly different numerical results due to floating-point round-off errors from different computation orders. To turn them off, set the environment variable `TF_ENABLE_ONEDNN_OPTS=0`. WARNING:tensorflow:From C:\Users\[Name]\AppData\Local\Programs\Python\Python310\lib\site-packages\keras\src\losses.py:2976: The name tf.losses.sparse_softmax_cross_entropy is deprecated. Please use tf.compat.v1.losses.sparse_softmax_cross_entropy instead. C:\Users\[Name]\AppData\Local\Programs\Python\Python310\lib\site-packages\tensorflow_addons\utils\tfa_eol_msg.py:23: UserWarning: TensorFlow Addons (TFA) has ended development and introduction of new features. TFA has entered a minimal maintenance and release mode until a planned end of life in May 2024. Please modify downstream libraries to take dependencies from other repositories in our TensorFlow community (e.g. Keras, Keras-CV, and Keras-NLP). For more information see: warnings.warn( C:\Users\[Name]\AppData\Local\Programs\Python\Python310\lib\site-packages\tensorflow_addons\utils\ensure_tf_install.py:53: UserWarning: Tensorflow Addons supports using Python ops for all Tensorflow versions above or equal to 2.12.0 and strictly below 2.15.0 (nightly versions are not supported). The versions of TensorFlow you are currently using is 2.15.0 and is not supported. Some things might work, some things might not. If you were to encounter a bug, do not file an issue. If you want to make sure you're using a tested and supported configuration, either change the TensorFlow version or the TensorFlow Addons's version. You can find the compatibility matrix in TensorFlow Addon's readme: warnings.warn( WARNING:tensorflow:From C:\Users\[Name]\AppData\Local\Programs\Python\Python310\lib\site-packages\keras\src\saving\legacy\saved_model\load.py:107: The name tf.gfile.Exists is deprecated. Please use tf.io.gfile.exists instead. 2024-06-01 14:17:31.363666: I tensorflow/core/platform/cpu_feature_guard.cc:182] This TensorFlow binary is optimized to use available CPU instructions in performance-critical operations. To enable the following instructions: SSE SSE2 SSE3 SSE4.1 SSE4.2 AVX2 AVX512F AVX512_VNNI AVX512_BF16 FMA, in other operations, rebuild TensorFlow with the appropriate compiler flags. WARNING:tensorflow:From C:\Users\[Name]\AppData\Local\Programs\Python\Python310\lib\site-packages\keras\src\engine\functional.py:156: The name tf.executing_eagerly_outside_functions is deprecated. Please use tf.compat.v1.executing_eagerly_outside_functions instead. WARNING:tensorflow:From C:\Users\[Name]\AppData\Local\Programs\Python\Python310\lib\site-packages\keras\src\layers\normalization\batch_normalization.py:979: The name tf.nn.fused_batch_norm is deprecated. Please use tf.compat.v1.nn.fused_batch_norm instead. 1/1 [==============================] - 4s 4s/step Raw predictions: [[4.23421043e-05 1.45377373e-06 1.09034730e-02 1.19525917e-04 4.45407240e-05 5.72818244e-05 5.68609731e-03 5.15926695e-05 1.89958355e-05 1.39491487e-04 3.20717366e-03 9.63417915e-06 1.22947793e-03 4.01171012e-04 3.64649204e-05 1.75396308e-05 3.09416023e-03 7.56465085e-03 2.89075997e-05 3.90331191e-03 2.16231216e-03 4.18351328e-06 5.89632022e-04 9.40740295e-03 6.80321036e-03 2.32697069e-03 4.23964392e-03 1.56047070e-04 2.14435873e-04 6.95710623e-05 1.38103365e-04 1.78470847e-03 3.75193194e-03 5.94434096e-03 5.69255608e-05 7.57165905e-03 1.52613886e-03 9.48755944e-04 8.21925176e-04 3.18029453e-03 3.89393512e-03 8.41296278e-05 8.34997976e-04 3.14124190e-04 6.81638776e-04 1.10320523e-02 1.10815199e-04 6.18589204e-03 2.17406079e-02 3.72037102e-05 1.65579877e-05 1.30886221e-02 1.01435784e-04 2.13157946e-05 1.25499619e-05 8.94762017e-03 4.36880719e-03 4.78018774e-03 8.53170827e-03 1.45823974e-02 1.05571962e-05 1.12631078e-05 5.09415939e-03 8.12840741e-03 1.48212257e-05 1.52864438e-02 9.66716034e-05 2.25000476e-04 3.60531732e-04 9.28066402e-06 8.15156789e-04 1.09069003e-02 3.43796797e-04 2.53324561e-05 7.89516326e-03 1.44943051e-05 4.06841224e-04 1.67445414e-05 3.78527766e-05 1.80476491e-04 3.33699776e-04 4.13847056e-06 3.32273915e-03 6.51864940e-03 7.48403618e-05 2.68448726e-04 1.54245936e-03 2.95383972e-03 2.26996126e-05 3.64100002e-03 2.81597768e-05 3.11967051e-05 1.48438021e-05 8.46863433e-04 4.05767525e-04 1.75380992e-04 4.76581818e-06 5.42160356e-04 2.19287374e-03 1.18714366e-02 1.41884899e-04 8.76697595e-06 3.85931274e-03 4.37544841e-05 4.01919424e-05 3.87528981e-03 3.88057524e-05 2.69062322e-04 4.46968805e-03 1.17368818e-05 3.70194939e-05 1.55831876e-04 1.63894765e-05 2.38729117e-04 1.19046052e-03 2.12675819e-04 1.08185853e-03 3.01667496e-05 6.18575094e-03 3.91955400e-05 1.40065713e-05 3.02084809e-04 6.46927813e-03 3.37069832e-05 5.15250103e-05 2.31142567e-05 2.20274273e-03 3.17445702e-05 1.04452763e-02 6.80019803e-05 7.81101780e-03 1.23853814e-02 1.04819983e-02 3.20679283e-05 6.71340758e-03 6.94293885e-06 1.98310101e-03 5.29599565e-05 9.02036484e-03 4.57535089e-06 1.93145883e-03 4.06190008e-03 8.42716638e-03 1.50314684e-03 8.58115556e-04 1.22383237e-03 8.49474862e-04 5.48258470e-03 6.09953167e-05 1.57669128e-03 5.43692382e-03 4.88058169e-04 6.75312986e-05 3.43937165e-04 1.93276245e-03 4.06867871e-03 5.20323374e-05 7.78318281e-05 1.93508764e-04 1.14409677e-05 2.21324177e-03 1.90052821e-03 8.52691382e-03 2.43102224e-03 2.88419239e-03 2.53974522e-05 9.51182563e-04 2.32981285e-03 9.86064842e-05 4.14316915e-03 1.66544644e-03 1.02754391e-04 3.95776224e-05 3.02393187e-06 1.32082617e-02 4.14707232e-04 3.40229672e-05 4.81802830e-03 1.90598912e-05 4.08358377e-04 5.95443300e-04 1.22634810e-04 5.74091624e-04 8.57623760e-03 2.60962266e-03 2.95263715e-03 1.58088005e-05 1.64122172e-02 2.09987498e-04 2.36775051e-03 3.00696083e-05 3.46693669e-05 1.16249910e-04 6.94001559e-03 1.58400853e-05 1.95188422e-05 2.19169408e-04 3.09433235e-04 5.44128183e-04 6.35302160e-04 7.07127433e-03 1.19772732e-04 5.37439200e-06 1.91133395e-02 1.27979312e-02 3.89739592e-03 1.97048103e-05 2.29625002e-05 2.21050854e-04 1.92064399e-04 1.20139657e-05 3.20516920e-05 4.26828819e-06 3.64828011e-05 7.55213068e-06 2.67963973e-03 3.17923805e-05 6.19895945e-05 3.99544797e-06 2.68664648e-04 1.83274597e-02 8.71072552e-05 1.38439747e-04 4.96710254e-06 3.56023484e-05 1.34899991e-03 2.05766381e-04 3.96062108e-03 5.61600551e-03 5.31910664e-05 6.77773132e-05 1.36139952e-02 7.41477634e-05 1.63904135e-03 4.74587978e-06 1.45082246e-04 2.09337009e-06 8.13181920e-04 3.63194500e-04 6.46722084e-03 5.02364383e-05 6.90550078e-05 6.36972545e-05 2.09673337e-04 1.79036579e-05 2.36021675e-04 6.37291942e-06 5.70875318e-06 2.56235455e-03 2.72009202e-04 3.77103061e-05 5.63449021e-06 2.25979857e-05 2.61697169e-05 3.42375762e-03 1.04161156e-02 2.22223607e-05 6.27681802e-05 1.88465419e-04 2.82149922e-05 4.01149562e-04 1.31122259e-04 5.97863036e-05 2.41098423e-05 7.71318519e-05 3.57087993e-04 3.41462255e-05 1.01930054e-04 5.23206063e-06 2.95026781e-04 7.02897159e-05 3.99115682e-02 1.89455808e-03 1.74146010e-06 1.14775894e-05 7.84916210e-06 1.93041191e-03 2.37918808e-03 3.49449110e-03 6.98623667e-03 7.64393993e-03 4.12582303e-05 1.24030013e-03 1.72785169e-03 7.18316660e-05 5.17749111e-04 7.84919783e-03 1.04525541e-04 9.83856899e-06 8.77521088e-05 1.68125369e-02 4.09213862e-05 1.09552668e-04 2.54421811e-05 4.65482954e-05 6.95294410e-04 6.72869501e-05 2.40904570e-04 2.15112406e-04 3.85226776e-05 2.51369456e-05 4.68338234e-03 1.26862462e-04 9.00995801e-04 4.16984549e-05 7.36891707e-06 1.51534463e-04 1.48332631e-03 4.95935837e-03 1.91499032e-02 3.01804044e-04 6.28613270e-05 4.78365598e-03 8.38827982e-05 1.70516931e-02 1.52653758e-03 5.85798814e-04 3.11521399e-05 2.11968741e-04 7.41351105e-05 1.40834545e-05 8.93215940e-04 1.45371505e-05 4.96711982e-05 4.11317131e-04 8.89070239e-03 5.06997202e-03 3.08362325e-03 2.77415646e-04 3.75299685e-04 1.19906381e-05 1.50029315e-03 1.14443043e-04 2.52026439e-05 9.22407198e-04 3.51146841e-03 1.11564566e-06 1.36691102e-04 3.53032886e-03 2.15746608e-04 8.79282816e-05 4.36248304e-03 1.77966576e-04 1.47887832e-03 6.94399816e-04 8.03673174e-04 5.23004041e-04 3.90421192e-04 1.06344873e-03 3.55399796e-04 6.01265463e-04 1.55850008e-04 1.33491016e-03 1.09734829e-04 4.38019342e-04 2.42487862e-04 6.84730615e-03 1.02040754e-03 1.07652310e-03 3.51822848e-04 9.20735547e-05 7.50967592e-04 1.44127226e-02 3.58455327e-05 5.16555374e-05 1.31370616e-03 9.02966480e-04 1.24254671e-03 5.20300702e-04 8.57163919e-04 3.66344648e-05 2.01024144e-04 6.52487564e-04 5.93215809e-04 5.76604251e-03 6.19325438e-04 1.16480421e-03 2.37531040e-05 2.50119111e-03 7.08868974e-05 5.99786472e-05 2.55976247e-05 4.62695534e-05 4.24469297e-04 6.20667648e-04 4.15926515e-05 7.03983005e-06 8.77018738e-06 5.21141301e-05 2.11411956e-04 7.74205779e-04 5.31276630e-04 6.44316664e-04 4.07212786e-03 2.68336060e-03 1.74210854e-05 3.76385942e-05 6.74255705e-03 4.46323538e-05 2.76757801e-05 2.56290223e-04 1.22213329e-04 1.22734054e-03 7.73016480e-04 1.11903930e-02 3.16570923e-02 2.75775470e-04 5.73344238e-04 2.86890985e-03 1.10085262e-03 1.35615155e-05 2.66479654e-03 1.99418981e-03 4.31017601e-04 9.68350447e-04 3.51598108e-04 8.54862970e-04 3.52715979e-05 1.46333405e-04 5.10955288e-05 1.48639630e-03 1.80458324e-03 7.51840998e-05 1.13529910e-04 3.89828119e-06 8.74532212e-04 1.12358983e-04 3.93593837e-05 6.01037289e-04 2.06997487e-04 3.94766452e-03 1.09549124e-04 2.11403880e-04 6.95336203e-04 5.99777419e-03 5.45272342e-05 2.56420486e-03 2.20299728e-04 4.23851707e-05 6.69996080e-04 2.66609713e-04 1.55276459e-04 2.75739990e-02 3.43240798e-03 2.68303775e-05 1.52821158e-04 9.82575657e-05 4.00313947e-05 6.07266993e-05 5.28094570e-05 1.02948405e-04 6.20577412e-05 2.12161940e-05 2.99842539e-03 1.17558768e-04 1.58015324e-03 3.30074807e-04 1.19093776e-04 2.52985101e-05 1.59350988e-02 4.89539379e-05 1.05491054e-05 1.09012712e-04 2.97089737e-05 7.28885690e-03 1.87386977e-05 1.85028894e-05 5.79945299e-05 1.54079917e-05 9.85169099e-05 1.05076749e-03 7.55816349e-04 2.62255053e-05 1.18091421e-05 2.95209320e-05]] Top class: omelette, Probability: 0.03991156816482544 Class: omelette, Probability: 0.03991156816482544 Class: steak, Probability: 0.03165709227323532 Class: tacos, Probability: 0.027573999017477036 Class: breakfast_burrito, Probability: 0.021740607917308807 Class: pulled_pork_sandwich, Probability: 0.01914990320801735 (own): omelette - 3.66shttps://github.com/tensorflow/addons/issues/2807https://github.com/tensorflow/addons 
Help would be appreciated because im slowly losing my mind :(,
Jonas
submitted by Jonasbru3m to computervision [link] [comments]


2024.06.01 14:24 Jonasbru3m TensorFlow Model Only Predicts 2 Classes out of 475

Hello Reddit Community,
For my Bachelor Thesis im currently trying to train my first ever model with tensorflow, but I'm encountering a strange issue where my model only predicts 2 classes out of the 475 possible classes. The model was trained on a HPC with 304 Nvidia A100 and 352 Nvidia A40 GPGPUs in 82 nodes.
Thats my training script:
 import os import tensorflow as tf from tensorflow.keras.preprocessing.image import ImageDataGenerator from tensorflow.keras.applications import EfficientNetB7 from tensorflow.keras import layers, models from tensorflow.keras.callbacks import ModelCheckpoint, TensorBoard import tensorflow_addons as tfa import logging import json # Setup logging logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s') # Check if GPUs are available gpus = tf.config.experimental.list_physical_devices('GPU') if gpus: try: for gpu in gpus: tf.config.experimental.set_memory_growth(gpu, True) tf.config.set_visible_devices(gpus, 'GPU') logging.info(f"Using {len(gpus)} GPUs.") except RuntimeError as e: logging.error(e) else: logging.error("No GPUs found. Check your device configuration.") # Data directory data_dir = "/app/FOOD475/" # Image dimensions and batch size img_height, img_width = 600, 600 batch_size = 64 # Data preprocessing and augmentation train_datagen = ImageDataGenerator( rescale=1./255, rotation_range=40, width_shift_range=0.2, height_shift_range=0.2, shear_range=0.2, zoom_range=0.2, horizontal_flip=True, fill_mode='nearest', validation_split=0.25 ) # Load and preprocess images train_generator = train_datagen.flow_from_directory( data_dir, target_size=(img_height, img_width), batch_size=batch_size, class_mode='categorical', subset='training' ) validation_generator = train_datagen.flow_from_directory( data_dir, target_size=(img_height, img_width), batch_size=batch_size, class_mode='categorical', subset='validation' ) # Model creation function def create_model(input_shape, num_classes): base_model = EfficientNetB7(include_top=False, input_shape=input_shape, weights='imagenet') base_model.trainable = True inputs = layers.Input(shape=input_shape) x = base_model(inputs, training=True) x = layers.GlobalAveragePooling2D()(x) outputs = layers.Dense(num_classes, activation='softmax')(x) model = models.Model(inputs, outputs) return model def find_latest_saved_model(checkpoint_dir): logging.info(f"Looking in checkpoint directory: {checkpoint_dir}") if not os.path.exists(checkpoint_dir): logging.error(f"Checkpoint directory does not exist: {checkpoint_dir}") return None, 0 subdirs = [os.path.join(checkpoint_dir, d) for d in os.listdir(checkpoint_dir) if os.path.isdir(os.path.join(checkpoint_dir, d))] if not subdirs: logging.info("No subdirectories found for checkpoints.") return None, 0 latest_subdir = max(subdirs, key=lambda x: int(os.path.basename(x))) latest_epoch = int(os.path.basename(latest_subdir)) logging.info(f"Latest model directory: {latest_subdir}, Epoch: {latest_epoch}") if os.path.exists(os.path.join(latest_subdir, 'saved_model.pb')): return latest_subdir, latest_epoch else: logging.info("No saved_model.pb found in the latest directory.") return None, 0 # Mirrored strategy for multi-GPU training strategy = tf.distribute.MirroredStrategy() with strategy.scope(): saved_model_dir = 'model_training' checkpoint_dir = os.path.join(saved_model_dir, 'checkpoints') latest_saved_model, latest_epoch = find_latest_saved_model(checkpoint_dir) if latest_saved_model: logging.info(f"Loading model from {latest_saved_model}") model = tf.keras.models.load_model(latest_saved_model) else: logging.info("No saved model found. Creating a new model.") model = create_model((img_height, img_width, 3), len(train_generator.class_indices)) if not os.path.exists(saved_model_dir): os.makedirs(saved_model_dir) summary_path = os.path.join(saved_model_dir, 'model_summary.txt') with open(summary_path, 'w') as f: model.summary(print_fn=lambda x: f.write(x + '\n')) logging.info(f"Model summary saved to {summary_path}") optimizer = tf.keras.optimizers.Adam(learning_rate=0.0002) model.compile(optimizer=optimizer, loss='categorical_crossentropy', metrics=['accuracy', tf.keras.metrics.TopKCategoricalAccuracy(k=5), tfa.metrics.F1Score(num_classes=len(train_generator.class_indices), average='macro')]) # Custom Callback for Saving the Best Model in SavedModel format class SaveBestModelTF(tf.keras.callbacks.Callback): def __init__(self, monitor='val_accuracy', saved_model_dir='model_training'): super(SaveBestModelTF, self).__init__() self.monitor = monitor self.saved_model_dir = saved_model_dir def on_epoch_end(self, epoch, logs=None): current = logs.get(self.monitor) if current is None: logging.warning(f"Monitor '{self.monitor}' for saving the model is not available in logs.") return logging.info(f"Epoch {epoch + 1}: saving model to {self.saved_model_dir}/checkpoints/{epoch + 1}") epoch_path = os.path.join(self.saved_model_dir, 'checkpoints', str(epoch + 1)) if not os.path.exists(epoch_path): os.makedirs(epoch_path) self.model.save(epoch_path, save_format='tf') # Callbacks for monitoring progress tensorboard_cb = TensorBoard(log_dir='./logs') # Save class indices to a JSON file class_indices_path = 'model_training/class_indices.json' if not os.path.exists(os.path.dirname(class_indices_path)): os.makedirs(os.path.dirname(class_indices_path), exist_ok=True) logging.info(f"Directory {os.path.dirname(class_indices_path)} created.") with open(class_indices_path, 'w') as file: json.dump(train_generator.class_indices, file) logging.info(f"Class indices saved to {class_indices_path}") # Model training total_epochs = 7 model.fit( train_generator, initial_epoch=latest_epoch, # Start from the next epoch epochs=total_epochs, validation_data=validation_generator, callbacks=[SaveBestModelTF(saved_model_dir=saved_model_dir), tensorboard_cb] ) # Evaluate the model eval_result = model.evaluate(validation_generator) logging.info(f'Validation Loss: {eval_result[0]}, Validation Accuracy: {eval_result[1]}') # Save the final model as a SavedModel format (including .pb files) model.save('model_training/finished_model') logging.info("Finished model saved in SavedModel format at 'model_training/finished_model'") # Convert to TensorFlow Lite converter = tf.lite.TFLiteConverter.from_saved_model('model_training/finished_model') tflite_model = converter.convert() tflite_path = 'model_training/lite_model/trained_model_lite.tflite' if not os.path.exists(os.path.dirname(tflite_path)): os.makedirs(os.path.dirname(tflite_path), exist_ok=True) logging.info(f"Directory {os.path.dirname(tflite_path)} created.") with open(tflite_path, 'wb') as f: f.write(tflite_model) logging.info(f"Model converted and saved as {tflite_path}") 
During training i got following output:
Found 182235 images belonging to 475 classes. Found 60544 images belonging to 475 classes. Epoch 1/7 2848/2848 [==============================] - 11914s 4s/step - loss: 1.7624 - accuracy: 0.5931 - top_k_categorical_accuracy: 0.8152 - f1_score: 0.4739 - val_loss: 1.1666 - val_accuracy: 0.7043 - val_top_k_categorical_accuracy: 0.9013 - val_f1_score: 0.6053 Epoch 2/7 2848/2848 [==============================] - 11096s 4s/step - loss: 0.8293 - accuracy: 0.7788 - top_k_categorical_accuracy: 0.9435 - f1_score: 0.7094 - val_loss: 0.9409 - val_accuracy: 0.7533 - val_top_k_categorical_accuracy: 0.9277 - val_f1_score: 0.6818 Epoch 3/7 2848/2848 [==============================] - 11123s 4s/step - loss: 0.6247 - accuracy: 0.8274 - top_k_categorical_accuracy: 0.9632 - f1_score: 0.7760 - val_loss: 0.8422 - val_accuracy: 0.7761 - val_top_k_categorical_accuracy: 0.9386 - val_f1_score: 0.7080 Epoch 4/7 2848/2848 [==============================] - 11101s 4s/step - loss: 0.5070 - accuracy: 0.8562 - top_k_categorical_accuracy: 0.9743 - f1_score: 0.8165 - val_loss: 0.8002 - val_accuracy: 0.7885 - val_top_k_categorical_accuracy: 0.9428 - val_f1_score: 0.7249 Epoch 5/7 2848/2848 [==============================] - 11079s 4s/step - loss: 0.4261 - accuracy: 0.8766 - top_k_categorical_accuracy: 0.9814 - f1_score: 0.8445 - val_loss: 0.7757 - val_accuracy: 0.7940 - val_top_k_categorical_accuracy: 0.9458 - val_f1_score: 0.7404 Epoch 6/7 2848/2848 [==============================] - 11100s 4s/step - loss: 0.3641 - accuracy: 0.8932 - top_k_categorical_accuracy: 0.9856 - f1_score: 0.8657 - val_loss: 0.7639 - val_accuracy: 0.8003 - val_top_k_categorical_accuracy: 0.9472 - val_f1_score: 0.7432 Epoch 7/7 2848/2848 [==============================] - 11129s 4s/step - loss: 0.3142 - accuracy: 0.9068 - top_k_categorical_accuracy: 0.9889 - f1_score: 0.8838 - val_loss: 0.7701 - val_accuracy: 0.8014 - val_top_k_categorical_accuracy: 0.9470 - val_f1_score: 0.7474 946/946 [==============================] - 2671s 3s/step - loss: 0.7682 - accuracy: 0.8008 - top_k_categorical_accuracy: 0.9470 - f1_score: 0.7456 
And when I try to load the model and make a prediction with this code:
class own: def __init__(self): if not os.path.exists("models/own"): raise FileNotFoundError(f"Model path models/own does not exist") try: self.model = tf.keras.models.load_model("models/own", custom_objects={'F1Score': F1Score}) except Exception as e: print(f"Error loading model: {e}") raise if not os.path.exists("models/own/class_indices.json"): raise FileNotFoundError(f"Class indices path models/own/class_indices.json does not exist") with open("models/own/class_indices.json", 'r') as file: self.class_indices = json.load(file) self.index_to_class = {v: k for k, v in self.class_indices.items()} def classify(self, img_path): if not os.path.exists(img_path): raise FileNotFoundError(f"Image path {img_path} does not exist") # Load and preprocess the image img = tf.keras.preprocessing.image.load_img(img_path, target_size=(600, 600)) img_array = tf.keras.preprocessing.image.img_to_array(img) img_array = np.expand_dims(img_array, axis=0) img_array /= 255.0 # Make prediction predictions = self.model.predict(img_array) print("Raw predictions:", predictions) top_index = np.argmax(predictions[0]) top_class = self.index_to_class[top_index] print(f"Top class: {top_class}, Probability: {predictions[0][top_index]}") top_n = 5 top_indices = np.argsort(predictions[0])[-top_n:][::-1] for idx in top_indices: print(f"Class: {self.index_to_class[idx]}, Probability: {predictions[0][idx]}") return top_class 
it always either predicts Steak or Omelette:
2024-06-01 14:17:27.571776: I tensorflow/core/util/port.cc:113] oneDNN custom operations are on. You may see slightly different numerical results due to floating-point round-off errors from different computation orders. To turn them off, set the environment variable `TF_ENABLE_ONEDNN_OPTS=0`. WARNING:tensorflow:From C:\Users\[Name]\AppData\Local\Programs\Python\Python310\lib\site-packages\keras\src\losses.py:2976: The name tf.losses.sparse_softmax_cross_entropy is deprecated. Please use tf.compat.v1.losses.sparse_softmax_cross_entropy instead. C:\Users\[Name]\AppData\Local\Programs\Python\Python310\lib\site-packages\tensorflow_addons\utils\tfa_eol_msg.py:23: UserWarning: TensorFlow Addons (TFA) has ended development and introduction of new features. TFA has entered a minimal maintenance and release mode until a planned end of life in May 2024. Please modify downstream libraries to take dependencies from other repositories in our TensorFlow community (e.g. Keras, Keras-CV, and Keras-NLP). For more information see: warnings.warn( C:\Users\[Name]\AppData\Local\Programs\Python\Python310\lib\site-packages\tensorflow_addons\utils\ensure_tf_install.py:53: UserWarning: Tensorflow Addons supports using Python ops for all Tensorflow versions above or equal to 2.12.0 and strictly below 2.15.0 (nightly versions are not supported). The versions of TensorFlow you are currently using is 2.15.0 and is not supported. Some things might work, some things might not. If you were to encounter a bug, do not file an issue. If you want to make sure you're using a tested and supported configuration, either change the TensorFlow version or the TensorFlow Addons's version. You can find the compatibility matrix in TensorFlow Addon's readme: warnings.warn( WARNING:tensorflow:From C:\Users\[Name]\AppData\Local\Programs\Python\Python310\lib\site-packages\keras\src\saving\legacy\saved_model\load.py:107: The name tf.gfile.Exists is deprecated. Please use tf.io.gfile.exists instead. 2024-06-01 14:17:31.363666: I tensorflow/core/platform/cpu_feature_guard.cc:182] This TensorFlow binary is optimized to use available CPU instructions in performance-critical operations. To enable the following instructions: SSE SSE2 SSE3 SSE4.1 SSE4.2 AVX2 AVX512F AVX512_VNNI AVX512_BF16 FMA, in other operations, rebuild TensorFlow with the appropriate compiler flags. WARNING:tensorflow:From C:\Users\[Name]\AppData\Local\Programs\Python\Python310\lib\site-packages\keras\src\engine\functional.py:156: The name tf.executing_eagerly_outside_functions is deprecated. Please use tf.compat.v1.executing_eagerly_outside_functions instead. WARNING:tensorflow:From C:\Users\[Name]\AppData\Local\Programs\Python\Python310\lib\site-packages\keras\src\layers\normalization\batch_normalization.py:979: The name tf.nn.fused_batch_norm is deprecated. Please use tf.compat.v1.nn.fused_batch_norm instead. 1/1 [==============================] - 4s 4s/step Raw predictions: [[4.23421043e-05 1.45377373e-06 1.09034730e-02 1.19525917e-04 4.45407240e-05 5.72818244e-05 5.68609731e-03 5.15926695e-05 1.89958355e-05 1.39491487e-04 3.20717366e-03 9.63417915e-06 1.22947793e-03 4.01171012e-04 3.64649204e-05 1.75396308e-05 3.09416023e-03 7.56465085e-03 2.89075997e-05 3.90331191e-03 2.16231216e-03 4.18351328e-06 5.89632022e-04 9.40740295e-03 6.80321036e-03 2.32697069e-03 4.23964392e-03 1.56047070e-04 2.14435873e-04 6.95710623e-05 1.38103365e-04 1.78470847e-03 3.75193194e-03 5.94434096e-03 5.69255608e-05 7.57165905e-03 1.52613886e-03 9.48755944e-04 8.21925176e-04 3.18029453e-03 3.89393512e-03 8.41296278e-05 8.34997976e-04 3.14124190e-04 6.81638776e-04 1.10320523e-02 1.10815199e-04 6.18589204e-03 2.17406079e-02 3.72037102e-05 1.65579877e-05 1.30886221e-02 1.01435784e-04 2.13157946e-05 1.25499619e-05 8.94762017e-03 4.36880719e-03 4.78018774e-03 8.53170827e-03 1.45823974e-02 1.05571962e-05 1.12631078e-05 5.09415939e-03 8.12840741e-03 1.48212257e-05 1.52864438e-02 9.66716034e-05 2.25000476e-04 3.60531732e-04 9.28066402e-06 8.15156789e-04 1.09069003e-02 3.43796797e-04 2.53324561e-05 7.89516326e-03 1.44943051e-05 4.06841224e-04 1.67445414e-05 3.78527766e-05 1.80476491e-04 3.33699776e-04 4.13847056e-06 3.32273915e-03 6.51864940e-03 7.48403618e-05 2.68448726e-04 1.54245936e-03 2.95383972e-03 2.26996126e-05 3.64100002e-03 2.81597768e-05 3.11967051e-05 1.48438021e-05 8.46863433e-04 4.05767525e-04 1.75380992e-04 4.76581818e-06 5.42160356e-04 2.19287374e-03 1.18714366e-02 1.41884899e-04 8.76697595e-06 3.85931274e-03 4.37544841e-05 4.01919424e-05 3.87528981e-03 3.88057524e-05 2.69062322e-04 4.46968805e-03 1.17368818e-05 3.70194939e-05 1.55831876e-04 1.63894765e-05 2.38729117e-04 1.19046052e-03 2.12675819e-04 1.08185853e-03 3.01667496e-05 6.18575094e-03 3.91955400e-05 1.40065713e-05 3.02084809e-04 6.46927813e-03 3.37069832e-05 5.15250103e-05 2.31142567e-05 2.20274273e-03 3.17445702e-05 1.04452763e-02 6.80019803e-05 7.81101780e-03 1.23853814e-02 1.04819983e-02 3.20679283e-05 6.71340758e-03 6.94293885e-06 1.98310101e-03 5.29599565e-05 9.02036484e-03 4.57535089e-06 1.93145883e-03 4.06190008e-03 8.42716638e-03 1.50314684e-03 8.58115556e-04 1.22383237e-03 8.49474862e-04 5.48258470e-03 6.09953167e-05 1.57669128e-03 5.43692382e-03 4.88058169e-04 6.75312986e-05 3.43937165e-04 1.93276245e-03 4.06867871e-03 5.20323374e-05 7.78318281e-05 1.93508764e-04 1.14409677e-05 2.21324177e-03 1.90052821e-03 8.52691382e-03 2.43102224e-03 2.88419239e-03 2.53974522e-05 9.51182563e-04 2.32981285e-03 9.86064842e-05 4.14316915e-03 1.66544644e-03 1.02754391e-04 3.95776224e-05 3.02393187e-06 1.32082617e-02 4.14707232e-04 3.40229672e-05 4.81802830e-03 1.90598912e-05 4.08358377e-04 5.95443300e-04 1.22634810e-04 5.74091624e-04 8.57623760e-03 2.60962266e-03 2.95263715e-03 1.58088005e-05 1.64122172e-02 2.09987498e-04 2.36775051e-03 3.00696083e-05 3.46693669e-05 1.16249910e-04 6.94001559e-03 1.58400853e-05 1.95188422e-05 2.19169408e-04 3.09433235e-04 5.44128183e-04 6.35302160e-04 7.07127433e-03 1.19772732e-04 5.37439200e-06 1.91133395e-02 1.27979312e-02 3.89739592e-03 1.97048103e-05 2.29625002e-05 2.21050854e-04 1.92064399e-04 1.20139657e-05 3.20516920e-05 4.26828819e-06 3.64828011e-05 7.55213068e-06 2.67963973e-03 3.17923805e-05 6.19895945e-05 3.99544797e-06 2.68664648e-04 1.83274597e-02 8.71072552e-05 1.38439747e-04 4.96710254e-06 3.56023484e-05 1.34899991e-03 2.05766381e-04 3.96062108e-03 5.61600551e-03 5.31910664e-05 6.77773132e-05 1.36139952e-02 7.41477634e-05 1.63904135e-03 4.74587978e-06 1.45082246e-04 2.09337009e-06 8.13181920e-04 3.63194500e-04 6.46722084e-03 5.02364383e-05 6.90550078e-05 6.36972545e-05 2.09673337e-04 1.79036579e-05 2.36021675e-04 6.37291942e-06 5.70875318e-06 2.56235455e-03 2.72009202e-04 3.77103061e-05 5.63449021e-06 2.25979857e-05 2.61697169e-05 3.42375762e-03 1.04161156e-02 2.22223607e-05 6.27681802e-05 1.88465419e-04 2.82149922e-05 4.01149562e-04 1.31122259e-04 5.97863036e-05 2.41098423e-05 7.71318519e-05 3.57087993e-04 3.41462255e-05 1.01930054e-04 5.23206063e-06 2.95026781e-04 7.02897159e-05 3.99115682e-02 1.89455808e-03 1.74146010e-06 1.14775894e-05 7.84916210e-06 1.93041191e-03 2.37918808e-03 3.49449110e-03 6.98623667e-03 7.64393993e-03 4.12582303e-05 1.24030013e-03 1.72785169e-03 7.18316660e-05 5.17749111e-04 7.84919783e-03 1.04525541e-04 9.83856899e-06 8.77521088e-05 1.68125369e-02 4.09213862e-05 1.09552668e-04 2.54421811e-05 4.65482954e-05 6.95294410e-04 6.72869501e-05 2.40904570e-04 2.15112406e-04 3.85226776e-05 2.51369456e-05 4.68338234e-03 1.26862462e-04 9.00995801e-04 4.16984549e-05 7.36891707e-06 1.51534463e-04 1.48332631e-03 4.95935837e-03 1.91499032e-02 3.01804044e-04 6.28613270e-05 4.78365598e-03 8.38827982e-05 1.70516931e-02 1.52653758e-03 5.85798814e-04 3.11521399e-05 2.11968741e-04 7.41351105e-05 1.40834545e-05 8.93215940e-04 1.45371505e-05 4.96711982e-05 4.11317131e-04 8.89070239e-03 5.06997202e-03 3.08362325e-03 2.77415646e-04 3.75299685e-04 1.19906381e-05 1.50029315e-03 1.14443043e-04 2.52026439e-05 9.22407198e-04 3.51146841e-03 1.11564566e-06 1.36691102e-04 3.53032886e-03 2.15746608e-04 8.79282816e-05 4.36248304e-03 1.77966576e-04 1.47887832e-03 6.94399816e-04 8.03673174e-04 5.23004041e-04 3.90421192e-04 1.06344873e-03 3.55399796e-04 6.01265463e-04 1.55850008e-04 1.33491016e-03 1.09734829e-04 4.38019342e-04 2.42487862e-04 6.84730615e-03 1.02040754e-03 1.07652310e-03 3.51822848e-04 9.20735547e-05 7.50967592e-04 1.44127226e-02 3.58455327e-05 5.16555374e-05 1.31370616e-03 9.02966480e-04 1.24254671e-03 5.20300702e-04 8.57163919e-04 3.66344648e-05 2.01024144e-04 6.52487564e-04 5.93215809e-04 5.76604251e-03 6.19325438e-04 1.16480421e-03 2.37531040e-05 2.50119111e-03 7.08868974e-05 5.99786472e-05 2.55976247e-05 4.62695534e-05 4.24469297e-04 6.20667648e-04 4.15926515e-05 7.03983005e-06 8.77018738e-06 5.21141301e-05 2.11411956e-04 7.74205779e-04 5.31276630e-04 6.44316664e-04 4.07212786e-03 2.68336060e-03 1.74210854e-05 3.76385942e-05 6.74255705e-03 4.46323538e-05 2.76757801e-05 2.56290223e-04 1.22213329e-04 1.22734054e-03 7.73016480e-04 1.11903930e-02 3.16570923e-02 2.75775470e-04 5.73344238e-04 2.86890985e-03 1.10085262e-03 1.35615155e-05 2.66479654e-03 1.99418981e-03 4.31017601e-04 9.68350447e-04 3.51598108e-04 8.54862970e-04 3.52715979e-05 1.46333405e-04 5.10955288e-05 1.48639630e-03 1.80458324e-03 7.51840998e-05 1.13529910e-04 3.89828119e-06 8.74532212e-04 1.12358983e-04 3.93593837e-05 6.01037289e-04 2.06997487e-04 3.94766452e-03 1.09549124e-04 2.11403880e-04 6.95336203e-04 5.99777419e-03 5.45272342e-05 2.56420486e-03 2.20299728e-04 4.23851707e-05 6.69996080e-04 2.66609713e-04 1.55276459e-04 2.75739990e-02 3.43240798e-03 2.68303775e-05 1.52821158e-04 9.82575657e-05 4.00313947e-05 6.07266993e-05 5.28094570e-05 1.02948405e-04 6.20577412e-05 2.12161940e-05 2.99842539e-03 1.17558768e-04 1.58015324e-03 3.30074807e-04 1.19093776e-04 2.52985101e-05 1.59350988e-02 4.89539379e-05 1.05491054e-05 1.09012712e-04 2.97089737e-05 7.28885690e-03 1.87386977e-05 1.85028894e-05 5.79945299e-05 1.54079917e-05 9.85169099e-05 1.05076749e-03 7.55816349e-04 2.62255053e-05 1.18091421e-05 2.95209320e-05]] Top class: omelette, Probability: 0.03991156816482544 Class: omelette, Probability: 0.03991156816482544 Class: steak, Probability: 0.03165709227323532 Class: tacos, Probability: 0.027573999017477036 Class: breakfast_burrito, Probability: 0.021740607917308807 Class: pulled_pork_sandwich, Probability: 0.01914990320801735 (own): omelette - 3.66shttps://github.com/tensorflow/addons/issues/2807https://github.com/tensorflow/addons 
Help would be appreciated because im slowly losing my mind :(,
Jonas
submitted by Jonasbru3m to learnmachinelearning [link] [comments]


2024.06.01 14:23 Jonasbru3m TensorFlow Model Only Predicts 2 Classes out of 475

Hello Reddit Community,
For my Bachelor Thesis im currently trying to train my first ever model with tensorflow, but I'm encountering a strange issue where my model only predicts 2 classes out of the 475 possible classes. The model was trained on a HPC with 304 Nvidia A100 and 352 Nvidia A40 GPGPUs in 82 nodes.
Thats my training script:
 import os import tensorflow as tf from tensorflow.keras.preprocessing.image import ImageDataGenerator from tensorflow.keras.applications import EfficientNetB7 from tensorflow.keras import layers, models from tensorflow.keras.callbacks import ModelCheckpoint, TensorBoard import tensorflow_addons as tfa import logging import json # Setup logging logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s') # Check if GPUs are available gpus = tf.config.experimental.list_physical_devices('GPU') if gpus: try: for gpu in gpus: tf.config.experimental.set_memory_growth(gpu, True) tf.config.set_visible_devices(gpus, 'GPU') logging.info(f"Using {len(gpus)} GPUs.") except RuntimeError as e: logging.error(e) else: logging.error("No GPUs found. Check your device configuration.") # Data directory data_dir = "/app/FOOD475/" # Image dimensions and batch size img_height, img_width = 600, 600 batch_size = 64 # Data preprocessing and augmentation train_datagen = ImageDataGenerator( rescale=1./255, rotation_range=40, width_shift_range=0.2, height_shift_range=0.2, shear_range=0.2, zoom_range=0.2, horizontal_flip=True, fill_mode='nearest', validation_split=0.25 ) # Load and preprocess images train_generator = train_datagen.flow_from_directory( data_dir, target_size=(img_height, img_width), batch_size=batch_size, class_mode='categorical', subset='training' ) validation_generator = train_datagen.flow_from_directory( data_dir, target_size=(img_height, img_width), batch_size=batch_size, class_mode='categorical', subset='validation' ) # Model creation function def create_model(input_shape, num_classes): base_model = EfficientNetB7(include_top=False, input_shape=input_shape, weights='imagenet') base_model.trainable = True inputs = layers.Input(shape=input_shape) x = base_model(inputs, training=True) x = layers.GlobalAveragePooling2D()(x) outputs = layers.Dense(num_classes, activation='softmax')(x) model = models.Model(inputs, outputs) return model def find_latest_saved_model(checkpoint_dir): logging.info(f"Looking in checkpoint directory: {checkpoint_dir}") if not os.path.exists(checkpoint_dir): logging.error(f"Checkpoint directory does not exist: {checkpoint_dir}") return None, 0 subdirs = [os.path.join(checkpoint_dir, d) for d in os.listdir(checkpoint_dir) if os.path.isdir(os.path.join(checkpoint_dir, d))] if not subdirs: logging.info("No subdirectories found for checkpoints.") return None, 0 latest_subdir = max(subdirs, key=lambda x: int(os.path.basename(x))) latest_epoch = int(os.path.basename(latest_subdir)) logging.info(f"Latest model directory: {latest_subdir}, Epoch: {latest_epoch}") if os.path.exists(os.path.join(latest_subdir, 'saved_model.pb')): return latest_subdir, latest_epoch else: logging.info("No saved_model.pb found in the latest directory.") return None, 0 # Mirrored strategy for multi-GPU training strategy = tf.distribute.MirroredStrategy() with strategy.scope(): saved_model_dir = 'model_training' checkpoint_dir = os.path.join(saved_model_dir, 'checkpoints') latest_saved_model, latest_epoch = find_latest_saved_model(checkpoint_dir) if latest_saved_model: logging.info(f"Loading model from {latest_saved_model}") model = tf.keras.models.load_model(latest_saved_model) else: logging.info("No saved model found. Creating a new model.") model = create_model((img_height, img_width, 3), len(train_generator.class_indices)) if not os.path.exists(saved_model_dir): os.makedirs(saved_model_dir) summary_path = os.path.join(saved_model_dir, 'model_summary.txt') with open(summary_path, 'w') as f: model.summary(print_fn=lambda x: f.write(x + '\n')) logging.info(f"Model summary saved to {summary_path}") optimizer = tf.keras.optimizers.Adam(learning_rate=0.0002) model.compile(optimizer=optimizer, loss='categorical_crossentropy', metrics=['accuracy', tf.keras.metrics.TopKCategoricalAccuracy(k=5), tfa.metrics.F1Score(num_classes=len(train_generator.class_indices), average='macro')]) # Custom Callback for Saving the Best Model in SavedModel format class SaveBestModelTF(tf.keras.callbacks.Callback): def __init__(self, monitor='val_accuracy', saved_model_dir='model_training'): super(SaveBestModelTF, self).__init__() self.monitor = monitor self.saved_model_dir = saved_model_dir def on_epoch_end(self, epoch, logs=None): current = logs.get(self.monitor) if current is None: logging.warning(f"Monitor '{self.monitor}' for saving the model is not available in logs.") return logging.info(f"Epoch {epoch + 1}: saving model to {self.saved_model_dir}/checkpoints/{epoch + 1}") epoch_path = os.path.join(self.saved_model_dir, 'checkpoints', str(epoch + 1)) if not os.path.exists(epoch_path): os.makedirs(epoch_path) self.model.save(epoch_path, save_format='tf') # Callbacks for monitoring progress tensorboard_cb = TensorBoard(log_dir='./logs') # Save class indices to a JSON file class_indices_path = 'model_training/class_indices.json' if not os.path.exists(os.path.dirname(class_indices_path)): os.makedirs(os.path.dirname(class_indices_path), exist_ok=True) logging.info(f"Directory {os.path.dirname(class_indices_path)} created.") with open(class_indices_path, 'w') as file: json.dump(train_generator.class_indices, file) logging.info(f"Class indices saved to {class_indices_path}") # Model training total_epochs = 7 model.fit( train_generator, initial_epoch=latest_epoch, # Start from the next epoch epochs=total_epochs, validation_data=validation_generator, callbacks=[SaveBestModelTF(saved_model_dir=saved_model_dir), tensorboard_cb] ) # Evaluate the model eval_result = model.evaluate(validation_generator) logging.info(f'Validation Loss: {eval_result[0]}, Validation Accuracy: {eval_result[1]}') # Save the final model as a SavedModel format (including .pb files) model.save('model_training/finished_model') logging.info("Finished model saved in SavedModel format at 'model_training/finished_model'") # Convert to TensorFlow Lite converter = tf.lite.TFLiteConverter.from_saved_model('model_training/finished_model') tflite_model = converter.convert() tflite_path = 'model_training/lite_model/trained_model_lite.tflite' if not os.path.exists(os.path.dirname(tflite_path)): os.makedirs(os.path.dirname(tflite_path), exist_ok=True) logging.info(f"Directory {os.path.dirname(tflite_path)} created.") with open(tflite_path, 'wb') as f: f.write(tflite_model) logging.info(f"Model converted and saved as {tflite_path}") 
During training i got following output:
Found 182235 images belonging to 475 classes. Found 60544 images belonging to 475 classes. Epoch 1/7 2848/2848 [==============================] - 11914s 4s/step - loss: 1.7624 - accuracy: 0.5931 - top_k_categorical_accuracy: 0.8152 - f1_score: 0.4739 - val_loss: 1.1666 - val_accuracy: 0.7043 - val_top_k_categorical_accuracy: 0.9013 - val_f1_score: 0.6053 Epoch 2/7 2848/2848 [==============================] - 11096s 4s/step - loss: 0.8293 - accuracy: 0.7788 - top_k_categorical_accuracy: 0.9435 - f1_score: 0.7094 - val_loss: 0.9409 - val_accuracy: 0.7533 - val_top_k_categorical_accuracy: 0.9277 - val_f1_score: 0.6818 Epoch 3/7 2848/2848 [==============================] - 11123s 4s/step - loss: 0.6247 - accuracy: 0.8274 - top_k_categorical_accuracy: 0.9632 - f1_score: 0.7760 - val_loss: 0.8422 - val_accuracy: 0.7761 - val_top_k_categorical_accuracy: 0.9386 - val_f1_score: 0.7080 Epoch 4/7 2848/2848 [==============================] - 11101s 4s/step - loss: 0.5070 - accuracy: 0.8562 - top_k_categorical_accuracy: 0.9743 - f1_score: 0.8165 - val_loss: 0.8002 - val_accuracy: 0.7885 - val_top_k_categorical_accuracy: 0.9428 - val_f1_score: 0.7249 Epoch 5/7 2848/2848 [==============================] - 11079s 4s/step - loss: 0.4261 - accuracy: 0.8766 - top_k_categorical_accuracy: 0.9814 - f1_score: 0.8445 - val_loss: 0.7757 - val_accuracy: 0.7940 - val_top_k_categorical_accuracy: 0.9458 - val_f1_score: 0.7404 Epoch 6/7 2848/2848 [==============================] - 11100s 4s/step - loss: 0.3641 - accuracy: 0.8932 - top_k_categorical_accuracy: 0.9856 - f1_score: 0.8657 - val_loss: 0.7639 - val_accuracy: 0.8003 - val_top_k_categorical_accuracy: 0.9472 - val_f1_score: 0.7432 Epoch 7/7 2848/2848 [==============================] - 11129s 4s/step - loss: 0.3142 - accuracy: 0.9068 - top_k_categorical_accuracy: 0.9889 - f1_score: 0.8838 - val_loss: 0.7701 - val_accuracy: 0.8014 - val_top_k_categorical_accuracy: 0.9470 - val_f1_score: 0.7474 946/946 [==============================] - 2671s 3s/step - loss: 0.7682 - accuracy: 0.8008 - top_k_categorical_accuracy: 0.9470 - f1_score: 0.7456 
And when I try to load the model and make a prediction with this code:
class own: def __init__(self): if not os.path.exists("models/own"): raise FileNotFoundError(f"Model path models/own does not exist") try: self.model = tf.keras.models.load_model("models/own", custom_objects={'F1Score': F1Score}) except Exception as e: print(f"Error loading model: {e}") raise if not os.path.exists("models/own/class_indices.json"): raise FileNotFoundError(f"Class indices path models/own/class_indices.json does not exist") with open("models/own/class_indices.json", 'r') as file: self.class_indices = json.load(file) self.index_to_class = {v: k for k, v in self.class_indices.items()} def classify(self, img_path): if not os.path.exists(img_path): raise FileNotFoundError(f"Image path {img_path} does not exist") # Load and preprocess the image img = tf.keras.preprocessing.image.load_img(img_path, target_size=(600, 600)) img_array = tf.keras.preprocessing.image.img_to_array(img) img_array = np.expand_dims(img_array, axis=0) img_array /= 255.0 # Make prediction predictions = self.model.predict(img_array) print("Raw predictions:", predictions) top_index = np.argmax(predictions[0]) top_class = self.index_to_class[top_index] print(f"Top class: {top_class}, Probability: {predictions[0][top_index]}") top_n = 5 top_indices = np.argsort(predictions[0])[-top_n:][::-1] for idx in top_indices: print(f"Class: {self.index_to_class[idx]}, Probability: {predictions[0][idx]}") return top_class 
it always either predicts Steak or Omelette:
2024-06-01 14:17:27.571776: I tensorflow/core/util/port.cc:113] oneDNN custom operations are on. You may see slightly different numerical results due to floating-point round-off errors from different computation orders. To turn them off, set the environment variable `TF_ENABLE_ONEDNN_OPTS=0`. WARNING:tensorflow:From C:\Users\[Name]\AppData\Local\Programs\Python\Python310\lib\site-packages\keras\src\losses.py:2976: The name tf.losses.sparse_softmax_cross_entropy is deprecated. Please use tf.compat.v1.losses.sparse_softmax_cross_entropy instead. C:\Users\[Name]\AppData\Local\Programs\Python\Python310\lib\site-packages\tensorflow_addons\utils\tfa_eol_msg.py:23: UserWarning: TensorFlow Addons (TFA) has ended development and introduction of new features. TFA has entered a minimal maintenance and release mode until a planned end of life in May 2024. Please modify downstream libraries to take dependencies from other repositories in our TensorFlow community (e.g. Keras, Keras-CV, and Keras-NLP). For more information see: warnings.warn( C:\Users\[Name]\AppData\Local\Programs\Python\Python310\lib\site-packages\tensorflow_addons\utils\ensure_tf_install.py:53: UserWarning: Tensorflow Addons supports using Python ops for all Tensorflow versions above or equal to 2.12.0 and strictly below 2.15.0 (nightly versions are not supported). The versions of TensorFlow you are currently using is 2.15.0 and is not supported. Some things might work, some things might not. If you were to encounter a bug, do not file an issue. If you want to make sure you're using a tested and supported configuration, either change the TensorFlow version or the TensorFlow Addons's version. You can find the compatibility matrix in TensorFlow Addon's readme: warnings.warn( WARNING:tensorflow:From C:\Users\[Name]\AppData\Local\Programs\Python\Python310\lib\site-packages\keras\src\saving\legacy\saved_model\load.py:107: The name tf.gfile.Exists is deprecated. Please use tf.io.gfile.exists instead. 2024-06-01 14:17:31.363666: I tensorflow/core/platform/cpu_feature_guard.cc:182] This TensorFlow binary is optimized to use available CPU instructions in performance-critical operations. To enable the following instructions: SSE SSE2 SSE3 SSE4.1 SSE4.2 AVX2 AVX512F AVX512_VNNI AVX512_BF16 FMA, in other operations, rebuild TensorFlow with the appropriate compiler flags. WARNING:tensorflow:From C:\Users\[Name]\AppData\Local\Programs\Python\Python310\lib\site-packages\keras\src\engine\functional.py:156: The name tf.executing_eagerly_outside_functions is deprecated. Please use tf.compat.v1.executing_eagerly_outside_functions instead. WARNING:tensorflow:From C:\Users\[Name]\AppData\Local\Programs\Python\Python310\lib\site-packages\keras\src\layers\normalization\batch_normalization.py:979: The name tf.nn.fused_batch_norm is deprecated. Please use tf.compat.v1.nn.fused_batch_norm instead. 1/1 [==============================] - 4s 4s/step Raw predictions: [[4.23421043e-05 1.45377373e-06 1.09034730e-02 1.19525917e-04 4.45407240e-05 5.72818244e-05 5.68609731e-03 5.15926695e-05 1.89958355e-05 1.39491487e-04 3.20717366e-03 9.63417915e-06 1.22947793e-03 4.01171012e-04 3.64649204e-05 1.75396308e-05 3.09416023e-03 7.56465085e-03 2.89075997e-05 3.90331191e-03 2.16231216e-03 4.18351328e-06 5.89632022e-04 9.40740295e-03 6.80321036e-03 2.32697069e-03 4.23964392e-03 1.56047070e-04 2.14435873e-04 6.95710623e-05 1.38103365e-04 1.78470847e-03 3.75193194e-03 5.94434096e-03 5.69255608e-05 7.57165905e-03 1.52613886e-03 9.48755944e-04 8.21925176e-04 3.18029453e-03 3.89393512e-03 8.41296278e-05 8.34997976e-04 3.14124190e-04 6.81638776e-04 1.10320523e-02 1.10815199e-04 6.18589204e-03 2.17406079e-02 3.72037102e-05 1.65579877e-05 1.30886221e-02 1.01435784e-04 2.13157946e-05 1.25499619e-05 8.94762017e-03 4.36880719e-03 4.78018774e-03 8.53170827e-03 1.45823974e-02 1.05571962e-05 1.12631078e-05 5.09415939e-03 8.12840741e-03 1.48212257e-05 1.52864438e-02 9.66716034e-05 2.25000476e-04 3.60531732e-04 9.28066402e-06 8.15156789e-04 1.09069003e-02 3.43796797e-04 2.53324561e-05 7.89516326e-03 1.44943051e-05 4.06841224e-04 1.67445414e-05 3.78527766e-05 1.80476491e-04 3.33699776e-04 4.13847056e-06 3.32273915e-03 6.51864940e-03 7.48403618e-05 2.68448726e-04 1.54245936e-03 2.95383972e-03 2.26996126e-05 3.64100002e-03 2.81597768e-05 3.11967051e-05 1.48438021e-05 8.46863433e-04 4.05767525e-04 1.75380992e-04 4.76581818e-06 5.42160356e-04 2.19287374e-03 1.18714366e-02 1.41884899e-04 8.76697595e-06 3.85931274e-03 4.37544841e-05 4.01919424e-05 3.87528981e-03 3.88057524e-05 2.69062322e-04 4.46968805e-03 1.17368818e-05 3.70194939e-05 1.55831876e-04 1.63894765e-05 2.38729117e-04 1.19046052e-03 2.12675819e-04 1.08185853e-03 3.01667496e-05 6.18575094e-03 3.91955400e-05 1.40065713e-05 3.02084809e-04 6.46927813e-03 3.37069832e-05 5.15250103e-05 2.31142567e-05 2.20274273e-03 3.17445702e-05 1.04452763e-02 6.80019803e-05 7.81101780e-03 1.23853814e-02 1.04819983e-02 3.20679283e-05 6.71340758e-03 6.94293885e-06 1.98310101e-03 5.29599565e-05 9.02036484e-03 4.57535089e-06 1.93145883e-03 4.06190008e-03 8.42716638e-03 1.50314684e-03 8.58115556e-04 1.22383237e-03 8.49474862e-04 5.48258470e-03 6.09953167e-05 1.57669128e-03 5.43692382e-03 4.88058169e-04 6.75312986e-05 3.43937165e-04 1.93276245e-03 4.06867871e-03 5.20323374e-05 7.78318281e-05 1.93508764e-04 1.14409677e-05 2.21324177e-03 1.90052821e-03 8.52691382e-03 2.43102224e-03 2.88419239e-03 2.53974522e-05 9.51182563e-04 2.32981285e-03 9.86064842e-05 4.14316915e-03 1.66544644e-03 1.02754391e-04 3.95776224e-05 3.02393187e-06 1.32082617e-02 4.14707232e-04 3.40229672e-05 4.81802830e-03 1.90598912e-05 4.08358377e-04 5.95443300e-04 1.22634810e-04 5.74091624e-04 8.57623760e-03 2.60962266e-03 2.95263715e-03 1.58088005e-05 1.64122172e-02 2.09987498e-04 2.36775051e-03 3.00696083e-05 3.46693669e-05 1.16249910e-04 6.94001559e-03 1.58400853e-05 1.95188422e-05 2.19169408e-04 3.09433235e-04 5.44128183e-04 6.35302160e-04 7.07127433e-03 1.19772732e-04 5.37439200e-06 1.91133395e-02 1.27979312e-02 3.89739592e-03 1.97048103e-05 2.29625002e-05 2.21050854e-04 1.92064399e-04 1.20139657e-05 3.20516920e-05 4.26828819e-06 3.64828011e-05 7.55213068e-06 2.67963973e-03 3.17923805e-05 6.19895945e-05 3.99544797e-06 2.68664648e-04 1.83274597e-02 8.71072552e-05 1.38439747e-04 4.96710254e-06 3.56023484e-05 1.34899991e-03 2.05766381e-04 3.96062108e-03 5.61600551e-03 5.31910664e-05 6.77773132e-05 1.36139952e-02 7.41477634e-05 1.63904135e-03 4.74587978e-06 1.45082246e-04 2.09337009e-06 8.13181920e-04 3.63194500e-04 6.46722084e-03 5.02364383e-05 6.90550078e-05 6.36972545e-05 2.09673337e-04 1.79036579e-05 2.36021675e-04 6.37291942e-06 5.70875318e-06 2.56235455e-03 2.72009202e-04 3.77103061e-05 5.63449021e-06 2.25979857e-05 2.61697169e-05 3.42375762e-03 1.04161156e-02 2.22223607e-05 6.27681802e-05 1.88465419e-04 2.82149922e-05 4.01149562e-04 1.31122259e-04 5.97863036e-05 2.41098423e-05 7.71318519e-05 3.57087993e-04 3.41462255e-05 1.01930054e-04 5.23206063e-06 2.95026781e-04 7.02897159e-05 3.99115682e-02 1.89455808e-03 1.74146010e-06 1.14775894e-05 7.84916210e-06 1.93041191e-03 2.37918808e-03 3.49449110e-03 6.98623667e-03 7.64393993e-03 4.12582303e-05 1.24030013e-03 1.72785169e-03 7.18316660e-05 5.17749111e-04 7.84919783e-03 1.04525541e-04 9.83856899e-06 8.77521088e-05 1.68125369e-02 4.09213862e-05 1.09552668e-04 2.54421811e-05 4.65482954e-05 6.95294410e-04 6.72869501e-05 2.40904570e-04 2.15112406e-04 3.85226776e-05 2.51369456e-05 4.68338234e-03 1.26862462e-04 9.00995801e-04 4.16984549e-05 7.36891707e-06 1.51534463e-04 1.48332631e-03 4.95935837e-03 1.91499032e-02 3.01804044e-04 6.28613270e-05 4.78365598e-03 8.38827982e-05 1.70516931e-02 1.52653758e-03 5.85798814e-04 3.11521399e-05 2.11968741e-04 7.41351105e-05 1.40834545e-05 8.93215940e-04 1.45371505e-05 4.96711982e-05 4.11317131e-04 8.89070239e-03 5.06997202e-03 3.08362325e-03 2.77415646e-04 3.75299685e-04 1.19906381e-05 1.50029315e-03 1.14443043e-04 2.52026439e-05 9.22407198e-04 3.51146841e-03 1.11564566e-06 1.36691102e-04 3.53032886e-03 2.15746608e-04 8.79282816e-05 4.36248304e-03 1.77966576e-04 1.47887832e-03 6.94399816e-04 8.03673174e-04 5.23004041e-04 3.90421192e-04 1.06344873e-03 3.55399796e-04 6.01265463e-04 1.55850008e-04 1.33491016e-03 1.09734829e-04 4.38019342e-04 2.42487862e-04 6.84730615e-03 1.02040754e-03 1.07652310e-03 3.51822848e-04 9.20735547e-05 7.50967592e-04 1.44127226e-02 3.58455327e-05 5.16555374e-05 1.31370616e-03 9.02966480e-04 1.24254671e-03 5.20300702e-04 8.57163919e-04 3.66344648e-05 2.01024144e-04 6.52487564e-04 5.93215809e-04 5.76604251e-03 6.19325438e-04 1.16480421e-03 2.37531040e-05 2.50119111e-03 7.08868974e-05 5.99786472e-05 2.55976247e-05 4.62695534e-05 4.24469297e-04 6.20667648e-04 4.15926515e-05 7.03983005e-06 8.77018738e-06 5.21141301e-05 2.11411956e-04 7.74205779e-04 5.31276630e-04 6.44316664e-04 4.07212786e-03 2.68336060e-03 1.74210854e-05 3.76385942e-05 6.74255705e-03 4.46323538e-05 2.76757801e-05 2.56290223e-04 1.22213329e-04 1.22734054e-03 7.73016480e-04 1.11903930e-02 3.16570923e-02 2.75775470e-04 5.73344238e-04 2.86890985e-03 1.10085262e-03 1.35615155e-05 2.66479654e-03 1.99418981e-03 4.31017601e-04 9.68350447e-04 3.51598108e-04 8.54862970e-04 3.52715979e-05 1.46333405e-04 5.10955288e-05 1.48639630e-03 1.80458324e-03 7.51840998e-05 1.13529910e-04 3.89828119e-06 8.74532212e-04 1.12358983e-04 3.93593837e-05 6.01037289e-04 2.06997487e-04 3.94766452e-03 1.09549124e-04 2.11403880e-04 6.95336203e-04 5.99777419e-03 5.45272342e-05 2.56420486e-03 2.20299728e-04 4.23851707e-05 6.69996080e-04 2.66609713e-04 1.55276459e-04 2.75739990e-02 3.43240798e-03 2.68303775e-05 1.52821158e-04 9.82575657e-05 4.00313947e-05 6.07266993e-05 5.28094570e-05 1.02948405e-04 6.20577412e-05 2.12161940e-05 2.99842539e-03 1.17558768e-04 1.58015324e-03 3.30074807e-04 1.19093776e-04 2.52985101e-05 1.59350988e-02 4.89539379e-05 1.05491054e-05 1.09012712e-04 2.97089737e-05 7.28885690e-03 1.87386977e-05 1.85028894e-05 5.79945299e-05 1.54079917e-05 9.85169099e-05 1.05076749e-03 7.55816349e-04 2.62255053e-05 1.18091421e-05 2.95209320e-05]] Top class: omelette, Probability: 0.03991156816482544 Class: omelette, Probability: 0.03991156816482544 Class: steak, Probability: 0.03165709227323532 Class: tacos, Probability: 0.027573999017477036 Class: breakfast_burrito, Probability: 0.021740607917308807 Class: pulled_pork_sandwich, Probability: 0.01914990320801735 (own): omelette - 3.66shttps://github.com/tensorflow/addons/issues/2807https://github.com/tensorflow/addons 
Help would be appreciated because im slowly losing my mind :(,
Jonas
submitted by Jonasbru3m to deeplearning [link] [comments]


2024.06.01 14:23 ImpactReality The Sky Is The Limit! Super Mario 3 Meets Super Mario Maker In VR!

The Sky Is The Limit! Super Mario 3 Meets Super Mario Maker In VR!
Sky Climb brings the best of both Super Mario and Super Mario Maker to VR. The game features a single player mode - with 65 vibrant and unique game levels. Compete against others in a fast-paced and competitive multiplayer, or create your own level in the custom level editor! . Take your VR gaming to new heights-> https://www.meta.com/experiences/6439300372853604/
submitted by ImpactReality to OculusQuest [link] [comments]


2024.06.01 14:21 Jonasbru3m TensorFlow Model Only Predicts 2 Classes out of 475

Hello Reddit Community,
For my Bachelor Thesis im currently trying to train my first ever model with tensorflow, but I'm encountering a strange issue where my model only predicts 2 classes out of the 475 possible classes. The model was trained on a HPC with 304 Nvidia A100 and 352 Nvidia A40 GPGPUs in 82 nodes.
Thats my training script:
 import os import tensorflow as tf from tensorflow.keras.preprocessing.image import ImageDataGenerator from tensorflow.keras.applications import EfficientNetB7 from tensorflow.keras import layers, models from tensorflow.keras.callbacks import ModelCheckpoint, TensorBoard import tensorflow_addons as tfa import logging import json # Setup logging logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s') # Check if GPUs are available gpus = tf.config.experimental.list_physical_devices('GPU') if gpus: try: for gpu in gpus: tf.config.experimental.set_memory_growth(gpu, True) tf.config.set_visible_devices(gpus, 'GPU') logging.info(f"Using {len(gpus)} GPUs.") except RuntimeError as e: logging.error(e) else: logging.error("No GPUs found. Check your device configuration.") # Data directory data_dir = "/app/FOOD475/" # Image dimensions and batch size img_height, img_width = 600, 600 batch_size = 64 # Data preprocessing and augmentation train_datagen = ImageDataGenerator( rescale=1./255, rotation_range=40, width_shift_range=0.2, height_shift_range=0.2, shear_range=0.2, zoom_range=0.2, horizontal_flip=True, fill_mode='nearest', validation_split=0.25 ) # Load and preprocess images train_generator = train_datagen.flow_from_directory( data_dir, target_size=(img_height, img_width), batch_size=batch_size, class_mode='categorical', subset='training' ) validation_generator = train_datagen.flow_from_directory( data_dir, target_size=(img_height, img_width), batch_size=batch_size, class_mode='categorical', subset='validation' ) # Model creation function def create_model(input_shape, num_classes): base_model = EfficientNetB7(include_top=False, input_shape=input_shape, weights='imagenet') base_model.trainable = True inputs = layers.Input(shape=input_shape) x = base_model(inputs, training=True) x = layers.GlobalAveragePooling2D()(x) outputs = layers.Dense(num_classes, activation='softmax')(x) model = models.Model(inputs, outputs) return model def find_latest_saved_model(checkpoint_dir): logging.info(f"Looking in checkpoint directory: {checkpoint_dir}") if not os.path.exists(checkpoint_dir): logging.error(f"Checkpoint directory does not exist: {checkpoint_dir}") return None, 0 subdirs = [os.path.join(checkpoint_dir, d) for d in os.listdir(checkpoint_dir) if os.path.isdir(os.path.join(checkpoint_dir, d))] if not subdirs: logging.info("No subdirectories found for checkpoints.") return None, 0 latest_subdir = max(subdirs, key=lambda x: int(os.path.basename(x))) latest_epoch = int(os.path.basename(latest_subdir)) logging.info(f"Latest model directory: {latest_subdir}, Epoch: {latest_epoch}") if os.path.exists(os.path.join(latest_subdir, 'saved_model.pb')): return latest_subdir, latest_epoch else: logging.info("No saved_model.pb found in the latest directory.") return None, 0 # Mirrored strategy for multi-GPU training strategy = tf.distribute.MirroredStrategy() with strategy.scope(): saved_model_dir = 'model_training' checkpoint_dir = os.path.join(saved_model_dir, 'checkpoints') latest_saved_model, latest_epoch = find_latest_saved_model(checkpoint_dir) if latest_saved_model: logging.info(f"Loading model from {latest_saved_model}") model = tf.keras.models.load_model(latest_saved_model) else: logging.info("No saved model found. Creating a new model.") model = create_model((img_height, img_width, 3), len(train_generator.class_indices)) if not os.path.exists(saved_model_dir): os.makedirs(saved_model_dir) summary_path = os.path.join(saved_model_dir, 'model_summary.txt') with open(summary_path, 'w') as f: model.summary(print_fn=lambda x: f.write(x + '\n')) logging.info(f"Model summary saved to {summary_path}") optimizer = tf.keras.optimizers.Adam(learning_rate=0.0002) model.compile(optimizer=optimizer, loss='categorical_crossentropy', metrics=['accuracy', tf.keras.metrics.TopKCategoricalAccuracy(k=5), tfa.metrics.F1Score(num_classes=len(train_generator.class_indices), average='macro')]) # Custom Callback for Saving the Best Model in SavedModel format class SaveBestModelTF(tf.keras.callbacks.Callback): def __init__(self, monitor='val_accuracy', saved_model_dir='model_training'): super(SaveBestModelTF, self).__init__() self.monitor = monitor self.saved_model_dir = saved_model_dir def on_epoch_end(self, epoch, logs=None): current = logs.get(self.monitor) if current is None: logging.warning(f"Monitor '{self.monitor}' for saving the model is not available in logs.") return logging.info(f"Epoch {epoch + 1}: saving model to {self.saved_model_dir}/checkpoints/{epoch + 1}") epoch_path = os.path.join(self.saved_model_dir, 'checkpoints', str(epoch + 1)) if not os.path.exists(epoch_path): os.makedirs(epoch_path) self.model.save(epoch_path, save_format='tf') # Callbacks for monitoring progress tensorboard_cb = TensorBoard(log_dir='./logs') # Save class indices to a JSON file class_indices_path = 'model_training/class_indices.json' if not os.path.exists(os.path.dirname(class_indices_path)): os.makedirs(os.path.dirname(class_indices_path), exist_ok=True) logging.info(f"Directory {os.path.dirname(class_indices_path)} created.") with open(class_indices_path, 'w') as file: json.dump(train_generator.class_indices, file) logging.info(f"Class indices saved to {class_indices_path}") # Model training total_epochs = 7 model.fit( train_generator, initial_epoch=latest_epoch, # Start from the next epoch epochs=total_epochs, validation_data=validation_generator, callbacks=[SaveBestModelTF(saved_model_dir=saved_model_dir), tensorboard_cb] ) # Evaluate the model eval_result = model.evaluate(validation_generator) logging.info(f'Validation Loss: {eval_result[0]}, Validation Accuracy: {eval_result[1]}') # Save the final model as a SavedModel format (including .pb files) model.save('model_training/finished_model') logging.info("Finished model saved in SavedModel format at 'model_training/finished_model'") # Convert to TensorFlow Lite converter = tf.lite.TFLiteConverter.from_saved_model('model_training/finished_model') tflite_model = converter.convert() tflite_path = 'model_training/lite_model/trained_model_lite.tflite' if not os.path.exists(os.path.dirname(tflite_path)): os.makedirs(os.path.dirname(tflite_path), exist_ok=True) logging.info(f"Directory {os.path.dirname(tflite_path)} created.") with open(tflite_path, 'wb') as f: f.write(tflite_model) logging.info(f"Model converted and saved as {tflite_path}") 
During training i got following output:
Found 182235 images belonging to 475 classes. Found 60544 images belonging to 475 classes. Epoch 1/7 2848/2848 [==============================] - 11914s 4s/step - loss: 1.7624 - accuracy: 0.5931 - top_k_categorical_accuracy: 0.8152 - f1_score: 0.4739 - val_loss: 1.1666 - val_accuracy: 0.7043 - val_top_k_categorical_accuracy: 0.9013 - val_f1_score: 0.6053 Epoch 2/7 2848/2848 [==============================] - 11096s 4s/step - loss: 0.8293 - accuracy: 0.7788 - top_k_categorical_accuracy: 0.9435 - f1_score: 0.7094 - val_loss: 0.9409 - val_accuracy: 0.7533 - val_top_k_categorical_accuracy: 0.9277 - val_f1_score: 0.6818 Epoch 3/7 2848/2848 [==============================] - 11123s 4s/step - loss: 0.6247 - accuracy: 0.8274 - top_k_categorical_accuracy: 0.9632 - f1_score: 0.7760 - val_loss: 0.8422 - val_accuracy: 0.7761 - val_top_k_categorical_accuracy: 0.9386 - val_f1_score: 0.7080 Epoch 4/7 2848/2848 [==============================] - 11101s 4s/step - loss: 0.5070 - accuracy: 0.8562 - top_k_categorical_accuracy: 0.9743 - f1_score: 0.8165 - val_loss: 0.8002 - val_accuracy: 0.7885 - val_top_k_categorical_accuracy: 0.9428 - val_f1_score: 0.7249 Epoch 5/7 2848/2848 [==============================] - 11079s 4s/step - loss: 0.4261 - accuracy: 0.8766 - top_k_categorical_accuracy: 0.9814 - f1_score: 0.8445 - val_loss: 0.7757 - val_accuracy: 0.7940 - val_top_k_categorical_accuracy: 0.9458 - val_f1_score: 0.7404 Epoch 6/7 2848/2848 [==============================] - 11100s 4s/step - loss: 0.3641 - accuracy: 0.8932 - top_k_categorical_accuracy: 0.9856 - f1_score: 0.8657 - val_loss: 0.7639 - val_accuracy: 0.8003 - val_top_k_categorical_accuracy: 0.9472 - val_f1_score: 0.7432 Epoch 7/7 2848/2848 [==============================] - 11129s 4s/step - loss: 0.3142 - accuracy: 0.9068 - top_k_categorical_accuracy: 0.9889 - f1_score: 0.8838 - val_loss: 0.7701 - val_accuracy: 0.8014 - val_top_k_categorical_accuracy: 0.9470 - val_f1_score: 0.7474 946/946 [==============================] - 2671s 3s/step - loss: 0.7682 - accuracy: 0.8008 - top_k_categorical_accuracy: 0.9470 - f1_score: 0.7456 
And when I try to load the model and make a prediction with this code:
class own: def __init__(self): if not os.path.exists("models/own"): raise FileNotFoundError(f"Model path models/own does not exist") try: self.model = tf.keras.models.load_model("models/own", custom_objects={'F1Score': F1Score}) except Exception as e: print(f"Error loading model: {e}") raise if not os.path.exists("models/own/class_indices.json"): raise FileNotFoundError(f"Class indices path models/own/class_indices.json does not exist") with open("models/own/class_indices.json", 'r') as file: self.class_indices = json.load(file) self.index_to_class = {v: k for k, v in self.class_indices.items()} def classify(self, img_path): if not os.path.exists(img_path): raise FileNotFoundError(f"Image path {img_path} does not exist") # Load and preprocess the image img = tf.keras.preprocessing.image.load_img(img_path, target_size=(600, 600)) img_array = tf.keras.preprocessing.image.img_to_array(img) img_array = np.expand_dims(img_array, axis=0) img_array /= 255.0 # Make prediction predictions = self.model.predict(img_array) print("Raw predictions:", predictions) top_index = np.argmax(predictions[0]) top_class = self.index_to_class[top_index] print(f"Top class: {top_class}, Probability: {predictions[0][top_index]}") top_n = 5 top_indices = np.argsort(predictions[0])[-top_n:][::-1] for idx in top_indices: print(f"Class: {self.index_to_class[idx]}, Probability: {predictions[0][idx]}") return top_class 
it always either predicts Steak or Omelette:
2024-06-01 14:17:27.571776: I tensorflow/core/util/port.cc:113] oneDNN custom operations are on. You may see slightly different numerical results due to floating-point round-off errors from different computation orders. To turn them off, set the environment variable `TF_ENABLE_ONEDNN_OPTS=0`. WARNING:tensorflow:From C:\Users\[Name]\AppData\Local\Programs\Python\Python310\lib\site-packages\keras\src\losses.py:2976: The name tf.losses.sparse_softmax_cross_entropy is deprecated. Please use tf.compat.v1.losses.sparse_softmax_cross_entropy instead. C:\Users\[Name]\AppData\Local\Programs\Python\Python310\lib\site-packages\tensorflow_addons\utils\tfa_eol_msg.py:23: UserWarning: TensorFlow Addons (TFA) has ended development and introduction of new features. TFA has entered a minimal maintenance and release mode until a planned end of life in May 2024. Please modify downstream libraries to take dependencies from other repositories in our TensorFlow community (e.g. Keras, Keras-CV, and Keras-NLP). For more information see: https://github.com/tensorflow/addons/issues/2807 warnings.warn( C:\Users\[Name]\AppData\Local\Programs\Python\Python310\lib\site-packages\tensorflow_addons\utils\ensure_tf_install.py:53: UserWarning: Tensorflow Addons supports using Python ops for all Tensorflow versions above or equal to 2.12.0 and strictly below 2.15.0 (nightly versions are not supported). The versions of TensorFlow you are currently using is 2.15.0 and is not supported. Some things might work, some things might not. If you were to encounter a bug, do not file an issue. If you want to make sure you're using a tested and supported configuration, either change the TensorFlow version or the TensorFlow Addons's version. You can find the compatibility matrix in TensorFlow Addon's readme: https://github.com/tensorflow/addons warnings.warn( WARNING:tensorflow:From C:\Users\[Name]\AppData\Local\Programs\Python\Python310\lib\site-packages\keras\src\saving\legacy\saved_model\load.py:107: The name tf.gfile.Exists is deprecated. Please use tf.io.gfile.exists instead. 2024-06-01 14:17:31.363666: I tensorflow/core/platform/cpu_feature_guard.cc:182] This TensorFlow binary is optimized to use available CPU instructions in performance-critical operations. To enable the following instructions: SSE SSE2 SSE3 SSE4.1 SSE4.2 AVX2 AVX512F AVX512_VNNI AVX512_BF16 FMA, in other operations, rebuild TensorFlow with the appropriate compiler flags. WARNING:tensorflow:From C:\Users\[Name]\AppData\Local\Programs\Python\Python310\lib\site-packages\keras\src\engine\functional.py:156: The name tf.executing_eagerly_outside_functions is deprecated. Please use tf.compat.v1.executing_eagerly_outside_functions instead. WARNING:tensorflow:From C:\Users\[Name]\AppData\Local\Programs\Python\Python310\lib\site-packages\keras\src\layers\normalization\batch_normalization.py:979: The name tf.nn.fused_batch_norm is deprecated. Please use tf.compat.v1.nn.fused_batch_norm instead. 1/1 [==============================] - 4s 4s/step Raw predictions: [[4.23421043e-05 1.45377373e-06 1.09034730e-02 1.19525917e-04 4.45407240e-05 5.72818244e-05 5.68609731e-03 5.15926695e-05 1.89958355e-05 1.39491487e-04 3.20717366e-03 9.63417915e-06 1.22947793e-03 4.01171012e-04 3.64649204e-05 1.75396308e-05 3.09416023e-03 7.56465085e-03 2.89075997e-05 3.90331191e-03 2.16231216e-03 4.18351328e-06 5.89632022e-04 9.40740295e-03 6.80321036e-03 2.32697069e-03 4.23964392e-03 1.56047070e-04 2.14435873e-04 6.95710623e-05 1.38103365e-04 1.78470847e-03 3.75193194e-03 5.94434096e-03 5.69255608e-05 7.57165905e-03 1.52613886e-03 9.48755944e-04 8.21925176e-04 3.18029453e-03 3.89393512e-03 8.41296278e-05 8.34997976e-04 3.14124190e-04 6.81638776e-04 1.10320523e-02 1.10815199e-04 6.18589204e-03 2.17406079e-02 3.72037102e-05 1.65579877e-05 1.30886221e-02 1.01435784e-04 2.13157946e-05 1.25499619e-05 8.94762017e-03 4.36880719e-03 4.78018774e-03 8.53170827e-03 1.45823974e-02 1.05571962e-05 1.12631078e-05 5.09415939e-03 8.12840741e-03 1.48212257e-05 1.52864438e-02 9.66716034e-05 2.25000476e-04 3.60531732e-04 9.28066402e-06 8.15156789e-04 1.09069003e-02 3.43796797e-04 2.53324561e-05 7.89516326e-03 1.44943051e-05 4.06841224e-04 1.67445414e-05 3.78527766e-05 1.80476491e-04 3.33699776e-04 4.13847056e-06 3.32273915e-03 6.51864940e-03 7.48403618e-05 2.68448726e-04 1.54245936e-03 2.95383972e-03 2.26996126e-05 3.64100002e-03 2.81597768e-05 3.11967051e-05 1.48438021e-05 8.46863433e-04 4.05767525e-04 1.75380992e-04 4.76581818e-06 5.42160356e-04 2.19287374e-03 1.18714366e-02 1.41884899e-04 8.76697595e-06 3.85931274e-03 4.37544841e-05 4.01919424e-05 3.87528981e-03 3.88057524e-05 2.69062322e-04 4.46968805e-03 1.17368818e-05 3.70194939e-05 1.55831876e-04 1.63894765e-05 2.38729117e-04 1.19046052e-03 2.12675819e-04 1.08185853e-03 3.01667496e-05 6.18575094e-03 3.91955400e-05 1.40065713e-05 3.02084809e-04 6.46927813e-03 3.37069832e-05 5.15250103e-05 2.31142567e-05 2.20274273e-03 3.17445702e-05 1.04452763e-02 6.80019803e-05 7.81101780e-03 1.23853814e-02 1.04819983e-02 3.20679283e-05 6.71340758e-03 6.94293885e-06 1.98310101e-03 5.29599565e-05 9.02036484e-03 4.57535089e-06 1.93145883e-03 4.06190008e-03 8.42716638e-03 1.50314684e-03 8.58115556e-04 1.22383237e-03 8.49474862e-04 5.48258470e-03 6.09953167e-05 1.57669128e-03 5.43692382e-03 4.88058169e-04 6.75312986e-05 3.43937165e-04 1.93276245e-03 4.06867871e-03 5.20323374e-05 7.78318281e-05 1.93508764e-04 1.14409677e-05 2.21324177e-03 1.90052821e-03 8.52691382e-03 2.43102224e-03 2.88419239e-03 2.53974522e-05 9.51182563e-04 2.32981285e-03 9.86064842e-05 4.14316915e-03 1.66544644e-03 1.02754391e-04 3.95776224e-05 3.02393187e-06 1.32082617e-02 4.14707232e-04 3.40229672e-05 4.81802830e-03 1.90598912e-05 4.08358377e-04 5.95443300e-04 1.22634810e-04 5.74091624e-04 8.57623760e-03 2.60962266e-03 2.95263715e-03 1.58088005e-05 1.64122172e-02 2.09987498e-04 2.36775051e-03 3.00696083e-05 3.46693669e-05 1.16249910e-04 6.94001559e-03 1.58400853e-05 1.95188422e-05 2.19169408e-04 3.09433235e-04 5.44128183e-04 6.35302160e-04 7.07127433e-03 1.19772732e-04 5.37439200e-06 1.91133395e-02 1.27979312e-02 3.89739592e-03 1.97048103e-05 2.29625002e-05 2.21050854e-04 1.92064399e-04 1.20139657e-05 3.20516920e-05 4.26828819e-06 3.64828011e-05 7.55213068e-06 2.67963973e-03 3.17923805e-05 6.19895945e-05 3.99544797e-06 2.68664648e-04 1.83274597e-02 8.71072552e-05 1.38439747e-04 4.96710254e-06 3.56023484e-05 1.34899991e-03 2.05766381e-04 3.96062108e-03 5.61600551e-03 5.31910664e-05 6.77773132e-05 1.36139952e-02 7.41477634e-05 1.63904135e-03 4.74587978e-06 1.45082246e-04 2.09337009e-06 8.13181920e-04 3.63194500e-04 6.46722084e-03 5.02364383e-05 6.90550078e-05 6.36972545e-05 2.09673337e-04 1.79036579e-05 2.36021675e-04 6.37291942e-06 5.70875318e-06 2.56235455e-03 2.72009202e-04 3.77103061e-05 5.63449021e-06 2.25979857e-05 2.61697169e-05 3.42375762e-03 1.04161156e-02 2.22223607e-05 6.27681802e-05 1.88465419e-04 2.82149922e-05 4.01149562e-04 1.31122259e-04 5.97863036e-05 2.41098423e-05 7.71318519e-05 3.57087993e-04 3.41462255e-05 1.01930054e-04 5.23206063e-06 2.95026781e-04 7.02897159e-05 3.99115682e-02 1.89455808e-03 1.74146010e-06 1.14775894e-05 7.84916210e-06 1.93041191e-03 2.37918808e-03 3.49449110e-03 6.98623667e-03 7.64393993e-03 4.12582303e-05 1.24030013e-03 1.72785169e-03 7.18316660e-05 5.17749111e-04 7.84919783e-03 1.04525541e-04 9.83856899e-06 8.77521088e-05 1.68125369e-02 4.09213862e-05 1.09552668e-04 2.54421811e-05 4.65482954e-05 6.95294410e-04 6.72869501e-05 2.40904570e-04 2.15112406e-04 3.85226776e-05 2.51369456e-05 4.68338234e-03 1.26862462e-04 9.00995801e-04 4.16984549e-05 7.36891707e-06 1.51534463e-04 1.48332631e-03 4.95935837e-03 1.91499032e-02 3.01804044e-04 6.28613270e-05 4.78365598e-03 8.38827982e-05 1.70516931e-02 1.52653758e-03 5.85798814e-04 3.11521399e-05 2.11968741e-04 7.41351105e-05 1.40834545e-05 8.93215940e-04 1.45371505e-05 4.96711982e-05 4.11317131e-04 8.89070239e-03 5.06997202e-03 3.08362325e-03 2.77415646e-04 3.75299685e-04 1.19906381e-05 1.50029315e-03 1.14443043e-04 2.52026439e-05 9.22407198e-04 3.51146841e-03 1.11564566e-06 1.36691102e-04 3.53032886e-03 2.15746608e-04 8.79282816e-05 4.36248304e-03 1.77966576e-04 1.47887832e-03 6.94399816e-04 8.03673174e-04 5.23004041e-04 3.90421192e-04 1.06344873e-03 3.55399796e-04 6.01265463e-04 1.55850008e-04 1.33491016e-03 1.09734829e-04 4.38019342e-04 2.42487862e-04 6.84730615e-03 1.02040754e-03 1.07652310e-03 3.51822848e-04 9.20735547e-05 7.50967592e-04 1.44127226e-02 3.58455327e-05 5.16555374e-05 1.31370616e-03 9.02966480e-04 1.24254671e-03 5.20300702e-04 8.57163919e-04 3.66344648e-05 2.01024144e-04 6.52487564e-04 5.93215809e-04 5.76604251e-03 6.19325438e-04 1.16480421e-03 2.37531040e-05 2.50119111e-03 7.08868974e-05 5.99786472e-05 2.55976247e-05 4.62695534e-05 4.24469297e-04 6.20667648e-04 4.15926515e-05 7.03983005e-06 8.77018738e-06 5.21141301e-05 2.11411956e-04 7.74205779e-04 5.31276630e-04 6.44316664e-04 4.07212786e-03 2.68336060e-03 1.74210854e-05 3.76385942e-05 6.74255705e-03 4.46323538e-05 2.76757801e-05 2.56290223e-04 1.22213329e-04 1.22734054e-03 7.73016480e-04 1.11903930e-02 3.16570923e-02 2.75775470e-04 5.73344238e-04 2.86890985e-03 1.10085262e-03 1.35615155e-05 2.66479654e-03 1.99418981e-03 4.31017601e-04 9.68350447e-04 3.51598108e-04 8.54862970e-04 3.52715979e-05 1.46333405e-04 5.10955288e-05 1.48639630e-03 1.80458324e-03 7.51840998e-05 1.13529910e-04 3.89828119e-06 8.74532212e-04 1.12358983e-04 3.93593837e-05 6.01037289e-04 2.06997487e-04 3.94766452e-03 1.09549124e-04 2.11403880e-04 6.95336203e-04 5.99777419e-03 5.45272342e-05 2.56420486e-03 2.20299728e-04 4.23851707e-05 6.69996080e-04 2.66609713e-04 1.55276459e-04 2.75739990e-02 3.43240798e-03 2.68303775e-05 1.52821158e-04 9.82575657e-05 4.00313947e-05 6.07266993e-05 5.28094570e-05 1.02948405e-04 6.20577412e-05 2.12161940e-05 2.99842539e-03 1.17558768e-04 1.58015324e-03 3.30074807e-04 1.19093776e-04 2.52985101e-05 1.59350988e-02 4.89539379e-05 1.05491054e-05 1.09012712e-04 2.97089737e-05 7.28885690e-03 1.87386977e-05 1.85028894e-05 5.79945299e-05 1.54079917e-05 9.85169099e-05 1.05076749e-03 7.55816349e-04 2.62255053e-05 1.18091421e-05 2.95209320e-05]] Top class: omelette, Probability: 0.03991156816482544 Class: omelette, Probability: 0.03991156816482544 Class: steak, Probability: 0.03165709227323532 Class: tacos, Probability: 0.027573999017477036 Class: breakfast_burrito, Probability: 0.021740607917308807 Class: pulled_pork_sandwich, Probability: 0.01914990320801735 (own): omelette - 3.66s 
Help would be appreciated because im slowly losing my mind :(,
Jonas
submitted by Jonasbru3m to tensorflow [link] [comments]


2024.06.01 14:14 melirritos How do I cope with seeing them everyday and being the rebound?

I started something with my best friend three months post breakup for him. I knew he wasn't ready but it started as a FWB arrangement and didn't have feelings for him at the time and wasn't exactly looking for anything serious. Things got messy and we both developed feelings almost instantly (and truth be told, it seemed that he had feelings for me way before anything happened between us). I knew he was still pining over his ex though (and understanbly so), still in contact with her. After all, they were together for 6 years. I decided to end things after two months, telling him that I wanted us to date and I wanted something more. He said he had feelings too but didn't feel ready. And that's also understandable. I knew that even if we started dating there's a very real chance I would be dumped the minute his ex begged him to be taken back. Our breakup was super amicable. I told him that I'm not going to wait around but if he ever feels ready and I'm still single, I'm open to reconnection.
In the beginning, I did everything right. No contact, didn't beg, nothing. Even when he showed interest a month afterwards, I knew it was just a plea for attention and that I'd still be there so I shot him down, even though we kissed, talked and hugged all night, I didn't pursue anything and went no contact until the beginning of April. The thing is, in the meantime, I saw him every fucking day. We do the same sport and he's pretty much unavoidable. I'm there every day and so is he. During January, February and March I really grew a lot, made a new friend group, removed toxic people from my life, made more money, moved out, restarted my studies, dated a bit and was doing great. Didn't care as much about him or getting him back. Again, he tried a few times to seek attention and validation from me but I gave him nothing. He saw me everyday too and he was really bitter that I have seemed to have moved on and didn't pay him much attention.
Fast forward to beginning of April, since I knew he was battling some serious issues and depression and I started getting really worried about him, I thought long and hard about reaching out to see if he's doing okay. I did after a week of thinking of how this might affect me. Eventually I sent out a message. He responded and said that he wasn't doing that great and he was really moved by my genuine care and interest. Boy was I right on the money about this setting me back. A few weeks later he started trying to catch my attention again and warming up to me, making eye contact, growing closer and getting excited to see me and silly me got excited that something may happen and that he was ready to move on from his ex and give this a shot. And that's when I got needy and made every mistake in the book. When he showed intrrest, I was needy it was clear I enjoyed this a bit too much. I reached out. We started walking home together talking. I tried to bait him into saying how he feels and whether he's ready. He flirted with me incessantly too, wouldn't stop hugging me goodbye like multiple times. I said I miss our friendship he said I miss you too and I told him that I was baiting him to see if he still had feelings and eventually he admitted that he does still have feelings and misses me but nothing has changed for him, in terms of wanting to commit.
The greatest mistake of it all is that the next week I told him exactly what mehaving feelings for him meant, how I saw a future, how I felt myself with him, how I've grown etc etc and asked him what he wanted. He evaded every single one of my questions. He told me he's not interested in dating around he's still getting over his ex. He'd rather focus on himself, getting better and his studies and that he does care about me more than he would for a friend. The thing is, I know he's hooking up with someone new now, this has been going on for like a month now and I feel lied to, at fault was doing too much too soon and pushing him away when he was warming up to me and worst of all, seeing him everyday gives me a panic attack. I took a break for two weeks from our sport and messaged him saying exactly that that seeing him for me is tough and walking home with him is the worst, that I don't want to be friendly or stay friends (he wanted to stay friends) and that he should leave me alone instead and he obliged.
submitted by melirritos to ExNoContact [link] [comments]


2024.06.01 14:13 melirritos How do you cope with seeing them everyday? How do you cope with being the rebound?

I started something with my best friend three months post breakup for him. I knew he wasn't ready but it started as a FWB arrangement and didn't have feelings for him at the time and wasn't exactly looking for anything serious. Things got messy and we both developed feelings almost instantly (and truth be told, it seemed that he had feelings for me way before anything happened between us). I knew he was still pining over his ex though (and understanbly so), still in contact with her. After all, they were together for 6 years. I decided to end things after two months, telling him that I wanted us to date and I wanted something more. He said he had feelings too but didn't feel ready. And that's also understandable. I knew that even if we started dating there's a very real chance I would be dumped the minute his ex begged him to be taken back. Our breakup was super amicable. I told him that I'm not going to wait around but if he ever feels ready and I'm still single, I'm open to reconnection.
In the beginning, I did everything right. No contact, didn't beg, nothing. Even when he showed interest a month afterwards, I knew it was just a plea for attention and that I'd still be there so I shot him down, even though we kissed, talked and hugged all night, I didn't pursue anything and went no contact until the beginning of April. The thing is, in the meantime, I saw him every fucking day. We do the same sport and he's pretty much unavoidable. I'm there every day and so is he. During January, February and March I really grew a lot, made a new friend group, removed toxic people from my life, made more money, moved out, restarted my studies, dated a bit and was doing great. Didn't care as much about him or getting him back. Again, he tried a few times to seek attention and validation from me but I gave him nothing. He saw me everyday too and he was really bitter that I have seemed to have moved on and didn't pay him much attention.
Fast forward to beginning of April, since I knew he was battling some serious issues and depression and I started getting really worried about him, I thought long and hard about reaching out to see if he's doing okay. I did after a week of thinking of how this might affect me. Eventually I sent out a message. He responded and said that he wasn't doing that great and he was really moved by my genuine care and interest. Boy was I right on the money about this setting me back. A few weeks later he started trying to catch my attention again and warming up to me, making eye contact, growing closer and getting excited to see me and silly me got excited that something may happen and that he was ready to move on from his ex and give this a shot. And that's when I got needy and made every mistake in the book. When he showed intrrest, I was needy it was clear I enjoyed this a bit too much. I reached out. We started walking home together talking. I tried to bait him into saying how he feels and whether he's ready. He flirted with me incessantly too, wouldn't stop hugging me goodbye like multiple times. I said I miss our friendship he said I miss you too and I told him that I was baiting him to see if he still had feelings and eventually he admitted that he does still have feelings and misses me but nothing has changed for him, in terms of wanting to commit.
The greatest mistake of it all is that the next week I told him exactly what mehaving feelings for him meant, how I saw a future, how I felt myself with him, how I've grown etc etc and asked him what he wanted. He evaded every single one of my questions. He told me he's not interested in dating around he's still getting over his ex. He'd rather focus on himself, getting better and his studies and that he does care about me more than he would for a friend. The thing is, I know he's hooking up with someone new now, this has been going on for like a month now and I feel lied to, at fault was doing too much too soon and pushing him away when he was warming up to me and worst of all, seeing him everyday gives me a panic attack. I took a break for two weeks from our sport and messaged him saying exactly that that seeing him for me is tough and walking home with him is the worst, that I don't want to be friendly or stay friends (he wanted to stay friends) and that he should leave me alone instead and he obliged.
submitted by melirritos to BreakUps [link] [comments]


2024.06.01 14:12 Slidebyte101 [STORE]: 🧧 --- Slidebyte's Ship Shop --- 🧧 (Main Store) Rare Ships, Unique Paints, Legacy Alpha Game Packs & Awards, Store Credit, Middleman Services, Account Liquidation Services, MSR Nightrunner, Free Hangar Fees Award, Subscriber Items & More 🛰

[STORE]: 🧧 --- Slidebyte's Ship Shop --- 🧧 (Main Store) Rare Ships, Unique Paints, Legacy Alpha Game Packs & Awards, Store Credit, Middleman Services, Account Liquidation Services, MSR Nightrunner, Free Hangar Fees Award, Subscriber Items & More 🛰
Greetings fellow Citizens o7! Long time backer and trader here.
I've been forced to condense the store to only the rarer items due to ANOTHER bug with Reddit's new UI that prevents me from editing the store pages to update. If you're looking for a CCU or something specific feel free to ask. If you're hesitant on a price also feel free to ask, many items are being sold on someone else's behalf so flexibility may vary.
Keep an eye out for "SALE" tags where the seller has decided to sell at a loss, less than market value or extremely rare / limited items.
-------------------------------------------------- ORDER PROCESS --------------------------------------------------
You will need to provide your Paypal email for the invoice as well as BOTH your RSI email & RSI name that the item/s get sent to.
Please familiarize yourself with CiG's gifting rules & ToS on their website.
Please understand that some of these items are in buyback and prices are subject to change without my knowledge. If this happens, I'll let you know, and we can reevaluate the transaction.
Abbreviations:
OC = "Original Concept"
obo = "or best offer."
OST = "Official Soundtrack"
LTI = "Lifetime Insurance"
Please understand that this is "not" my job, but I will respond as quickly as possible, usually within a 24hr period. Please allow a minimum of 24hrs for a response. Thanks for understanding!
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ IMPORTANT ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
If you're interested in anything or have any questions about items, transfers, CCU chaining or Star Citizen in general, please don't hesitate to shoot me a message. Happy to talk about anything SC related!
If you're new to Star Citizen and thinking of buying a game package, feel free to use my promo code to get extra goodies, promotional ships & /or credits added to your account: STAR-YC6L-5ZTY
If you're interested in building a fun community, in need of an Org to join & folk to play with, feel free to check out ours: Crypteian State Syndicate [CRYPTEIAN]
https://preview.redd.it/xv5et7n19y3d1.jpg?width=1500&format=pjpg&auto=webp&s=301e19436d68b031c8332b78f85e32ac9c4e3d0c
TABLE OF CONTENTS:
  1. Game Packages / Ship Packs
  2. Stand-alone ships
  3. Unique Paints
  4. Store Credit / Armors / Weapons / Other
  5. Accounts: Space Marshal with Unique MSR Night Runner, OG Legacy Backer Accounts w/Hangar Fee Rewards etc. (Ask for details)
If you don't see something you're looking for let me know. There's about 3-4 pages unlisted.
https://preview.redd.it/pc3pylf29y3d1.png?width=2900&format=png&auto=webp&s=28975e08ca3509a1a92e380271a67244c3f03103
Game Packages / Ship Packs:
Title: Notable Contents: Insurance: Total After Fees:
Arbiter Legacy Alpha Game Pack (JPx2) 325A, SC, SQ42, Legacy Alpha, Star Map, OST etc. LTI $169.20 (SALE)
Best in Show 2951 Hercules C2 Herc C2 + (IAE Leather Jacket & Unique blue / black BIS Livery) 10y $479
Best in Show 2952 Mercury Star Runner MSR & name reservation + ('52 Coin & Unique red / black BIS Livery) 10y $319
Best in Show 2952 C8X Pisces Expedition (x5) Pisces Expedition + ('52 Coin & Unique red / black BIS Livery) 10y $60
Best in Show 2952 Scorpius Scorpius + ('52 Coin & Unique red / black BIS Livery) 10y $299
Best in Show 2953 Corsair Corsair + ('53 Poster & Unique purple iridescent BIS Livery) 10y $299
Best in Show 2953 Vulture Vulture + ('53 Poster & Unique purple iridescent BIS Livery) 10y $209
Best in Show 2953 600i Exploration 600i & name reservation + ('53 Poster & Unique purple iridescent BIS Livery) 10y $569
Constellation Andromeda + SQ42 Legacy Game Pack Revel & York Hangar, PTV, 10,000 UEC, Manual, SQ 42, SC, Soundtrack, Star Map, Making of SC, Constellation poster, Cot, Work Bench, Fishtank Mk 1, Vindel, Oshi, Thorshu, Grey Ribbon Fish (Vario Vittas) 6mo $359
Digital Freelancer Legacy Alpha Game Pack (JP) Freelancer, SC, SQ42, 5k uec, Digital Engineering Manual, OST, Star Map, Legacy Alpha LTI $257.60 (SALE)
Lightspeed Legacy Alpha Pack (JP) Unique Origin Racing Suit, F7C-M (CCU'd), SC, SQ42, Digital Star Map, OST, Legacy Alpha, Etc. LTI $389 (SALE)
Next Generation Aurora Game Pack (JP) Aurora Legionnaire, SC, SQ42 etc. LTI $99 (SALE)
Pioneer Pack Pioneer, Greycat Estates Geostack-X Planetary Beacons, UEE Land Claim License Estate Parcel, Outpost Construction Material 10y $1099
Spirit Collection C1, E1 & A1 Spirits 6mo $455
Weekend Warrior Pack (JP) Model II Arclight Sidearm, SC, SQ42, F7C-M, 5000uec, Star Map, OST LTI $306 (SALE)
100i Foundation Festival Starter Pack (Warbond) 100i + Unique Limited Foundation Festival Paint, SC Digital Download 6mo $75
https://preview.redd.it/p9uiexw39y3d1.jpg?width=1680&format=pjpg&auto=webp&s=8747d32781e80754cdb64fa073a1f5b7ac28d434
2. Standalone Ships:
Title: Notable Contents: Insurance: Total After Fees:
Apollo Medivac ILW Edition - 10y $310
Aurora Legionnaire 2944 (Original Concept) (JPx2) - LTI $69 obo (SALE)
Ares Inferno ILW Edition - 10y $280
Ares Ion ILW Edition - 10y $280
Archimedes P72 (Original Concept) (El) Poster / Model LTI $49 (SALE)
Avenger Stalker (Original Concept) (JP) - LTI $79 (SALE)
Banu Defender - 6mo $220
Banu Defender (Original Concept) (El) Poster / Model LTI $239 (SALE)
Banu Merchantman - 6mo $660
Banu Merchantman Anniversary Edition (El) - 3y $440
Blade - 6mo $300
Carrack 2949 Edition Carrack name reservation 10y $550
Carrack 2952 IAE Edition Carrack name reservation 10y $660
Carrack (Original Concept) (El) Poster / Model, Anvil Manufacturer Shirt, Anvil Hat, Carrack Plushie, Name Reservation LTI $699
Caterpillar ILW Edition - 10y $363
Crucible ILW Edition - 10y $390
Corsair ILW / IAE Edition - 10y $275
Constellation Phoenix 2015 Anniversary Edition (El) - 3y $399 (SALE)
Eclipse Showdown Edition - 24mo $335
Eclipse (Fl) - LTI $330 (SALE)
Endeavor IAE Edition - 10y $390
Endeavor Hope Class (El) (Medical Bay & Hangar) 3y $509 (SALE)
Endeavor Biodome Pod IAE 2950 - - $115
Endeavor Collider Pod IAE 2950 - - $140
Expanse - 6mo $165
Freelancer (Original Concept) (JP) - LTI $140 (SALE)
F7C Hornet Heartseeker Edition - 6mo $234
F7C Hornet Wildfire IAE Edition - 10y $215
F7C MkII - 6mo $195
F7C-M 2943 Super Hornet (Original Concept) (El) - LTI $199 (SALE)
Fury ILW Edition - 10y $62
Fury MX ILW Edition - 10y $62
G12 IAE Edition - 10y $73
G12r IAE Edition - 10y $73
G12a ILW Edition - 10y $77
Galaxy (Original Concept) (Fl) Galaxy + Unique Concierge Protector Livery LTI $425 (SALE)
Galaxy Cargo Module - 6mo $80
Galaxy Refinery Module - 6mo $90
Galaxy Med Bay Module - 6mo $100
Gladius Valiant ILW Edition - 10y $125
Glaive IAE Edition - 10y $390
Genesis Starliner (Original Concept) (El) Poster / Model LTI $459
Hammerhead (Original Concept) (El) Poster / Model / Name Reservation LTI $729 (SALE)
Hurricane ILW Edition - 10y $235
Legionnaire ILW Edition - 10y $135
Liberator - 6mo $633
Lynx ILW Edition - 10y $70
Mercury Star Runner Fortuna Edition (MSR Name Reservation + Fortuna Livery) 6mo $300
Mercury Star Runner ILW Edition (MSR Name Reservation) 10y $300
Mule ILW Edition - 10y $50
Nautilus ILW Edition - 10y $825
Nox IAE Edition - 10y $45
Nova ILW Edition - 10y $120
Orion IAE Edition - 10y $720
Orion (Fl) Cutter Concierge Groundswell Paint ($430 melt) LTI $389 (SALE)
Orion (Original Concept) (El) Poster / Model LTI $649
Perseus ILW Edition - 10y $750
Prowler - 6mo $485
Prowler (Original Concept) (El) Poster / Model / CCC AVES Helmet LTI $479 (SALE)
Polaris IAE Edition - 10y $825
Polaris - LTI
Polaris (Original Concept) (El) Poster / Model LTI $849 (SALE)
Railen IAE Edition 10y $260
Ranger CV IAE Edition 10y $42
Ranger RC IAE Edition 10y $42
Ranger TR ILW Edition 10y $50
Ranger TR IAE Edition 10y $50
Sabre ILW Edition 10y $195
Sabre Comet ILW Edition 10y $205
San'tok.yāi IAE Edition 10y $260
Scorpius ILW Edition 10y $265
SRV ILW Edition 10y $170
Storm ILW Edition 10y $100
Talon Shrike 6mo $130
Terrapin ILW Edition 10y $250
Terrapin Showdown Edition 24mo $242
X1 Force IAE Edition 10y $60
X1 Force (Original Concept) (El) Poster / Model LTI $65 (SALE)
X1 Velocity IAE Edition - 10y $55
Vanguard Sentinel ILW Edition - 10y $305
Vanguard Warden ILW Edition - 10y $290
Vanguard Warden (Legacy Original Concept) Model / Poster LTI $299
Vanguard Battlefield Upgrade Kit Anniversary (El) (Sentinel) 3y $35(SALE)
Vulture ILW Edition - 10y $165
Vulcan (Original Concept) (El) - LTI $219(SALE)
325A (Original Concept) (JP) - LTI $100 (SALE)
325A ILW (customized wood / leather interior and loadout) - 10y $115
400i Citizencon 2951 Exclusive Preorder Meridian Edition - 6mo $289
400i Fortuna Edition - 6mo $290
600i Showdown Edition (Exploration Module + Name Reservation) 24mo $525
600i Touring Fortuna Edition (Fortuna Livery + 600i name reservation) 6mo $510
890j (Original Concept) (GY) Poster / Model / Revel & York Hangar / Name Reservation etc. LTI $1800
https://preview.redd.it/i3ymgsb59y3d1.jpg?width=3000&format=pjpg&auto=webp&s=9067d6f04b558011c583deec08cda55deadf9776
3. Unique Paints:
Title: Description: Total After Fees:
Ares Lovestruck pink - iridescent $20
Aurora Invictus Blue & Gold blue & gold $10
Aurora Dread Pirate (Unique Legacy) (El) black / skull & crossbones $30 (SALE)
Aurora Military Paint - UEE Distinguished Service Skin (Unique Legacy) (El) OD green / grey $30 (SALE)
Avenger Invictus Blue & Gold blue & gold $12
Avenger Solar Winds steel & Red $12
Buccaneer Ghoulish Green green - iridescent $10
C8 Pisces Code Blue (Limited Concierge Exclusive) blue, white - iridescent $10
C8 Pisces 2953 Auspicious Red (Rooster) Red & Gold $8
Caterpillar Ghoulish Green green - iridescent $15
Carrack 2953 Auspicious Red (Rooster) Red & Gold $25
Constellation 2952 Auspicious Red (Monkey) Red & Gold $15
Cutter Groundswell (Limited Concierge Exclusive) olive & orange $10
Cutter Nightfall (Limited Concierge Exclusive) dark steel & teal $10
Cutlass Ghoulish Green green - iridescent $10
Cutlass Black Skull & Crossbones black, skull & crossbones $15
Cyclone Invictus Blue & Gold blue & gold $10
Defender Harmony purple/blue/green/red- iridescent $15
Defender Platinum Platinum - iridescent $15
Dragonfly Ghoulish Green green - iridescent $10
Expanse Stardust (Limited Concierge Exclusive) blue & black $15
F7C MkI Corin (Limited) olive & red $15
F7C MkI Ironheart (Limited) silver & red $15
F7C MkI Killian Blue (Limited) blue $15
F7 MkII Ironscale (Limited Concierge Exclusive) Black & Rose Gold $15
Freelancer 2951 Auspicious Red (Ram) Red & Gold $15
Fortuna 2952 3 Paint Pack (MSR, 400i, 600i) dark green - iridescent $45
Fury Leatherback (Limited Concierge Exclusive) olive, red $10
Galaxy Protector (Limited Concierge Exclusive) steel blue & white $20
Ghoulish Green 4 Pack green - iridescent $32
Ghoulish Green 7 Pack green - iridescent $55
Gladius Invictus Blue & Gold blue & gold $15
Gladius Solar Winds charcoal & red $15
Hammerhead Fortuna dark green - iridescent $25
Hawk Invictus Blue & Gold blue & gold $15
Herald Ghoulish Green green - iridescent $12
Hercules Invictus Blue & Gold blue & gold $25
Hornet Invictus Blue & Gold blue & gold $15
Hoverquad Lovestruck pink - iridescent $10
Ironclad Dauntless (Limited Concierge Exclusive) silver & black $25
Legionnaire Shadow Strike (Limited Concierge Exclusive) black $15
Liberator Condor Paint (Limited Concierge Exclusive) white, grey $25
Lovestruck Pack (Ares, Nomad, Hoverquad) pink - iridescent $30
Lynx - Moonrise (Limited Concierge Exclusive) silver $10
Mercury Star Runner Fortuna dark green - iridescent $15
MPUV Firebrand (Limited Concierge Exclusive) burnt orange $10
Mule 3 Pack (Limited Concierge Exclusive) - $15
Mule Ghoulish Green green - iridescent $10
Nomad 29511 Auspicious Red (Ram) Red & Gold $15
Nomad Lovestruck pink - iridescent $15
Nox Harmony purple/blue/green/red- iridescent $10
Odyssey Windrider (Limited Concierge Exclusive) white & black $30
Prowler Harmony purple/blue/green/red- iridescent $25
Prowler Ocellus green/red- iridescent $25
Railen Hyaotan (Limited Concierge Exclusive) dark $30
Redeemer Fortuna dark green - iridescent $20
Reliant Invictus Blue & Gold blue & gold $10
Retaliator ILW 2950 Pack blue & gold $20
Sabre Raven Ashcloud (Limited Concierge Exclusive) black & Gold $15
Sabre 2952 Auspicious Red (Monkey) Red & Gold $15
Scorpius Tiburon (Limited Concierge Exclusive) flying tiger teeth $20
Solar Winds 3 Pack - $30
Spirit Allegiant (Fl) white, black, red stripe $5 (SALE)
Spirit 3 Pack (Limited Concierge Exclusive) - $35
Spirit Crimson (Limited Concierge Exclusive) red & white $20
Spirit Intrepid (Limited Concierge Exclusive) olive, white, orange $20
Spirit Olympia (Limited Concierge Exclusive) black, gold - textured $20
Storm - Summit (Limited Concierge Exclusive) grey, white $15
STV Blue Steel (Limited Concierge Exclusive) blue, black $10
Talon Harmony purple/blue/green/red- iridescent $15
Talon Ocellus green/red- iridescent $15
Ursa Respite (Limited Concierge Exclusive) Black $9
Vanguard Invictus Blue & Gold blue & gold $15
Vanguard Fortuna dark green - iridescent $15
Vanguard Solar Winds charcoal, red $15
Vulture Ghoulish Green green - iridescent $15
X1 Auspicious Red (Dragon) Red & Gold $8
X1 Auspicious Red (Dog) Red & Gold $8
You Got Our Backs Electro Skin Hull 2013 (JP) unknown $60
Zeus Mk. II Concierge Exclusive Solstice Black, Grey, Gold $20
100i Invictus Blue & Gold blue & gold $10
100i Auspicious Red (Dragon) Red & Gold $8
100i Auspicious Red (Dog) Red & Gold $8
400i Auspicious Red (Dragon) Red & Gold $15
400i Auspicious Red (Dog) Red & Gold $15
400i Fortuna dark green - iridescent $15
400i Meridian (Limited Edition CitizenCon) Dark Steel $30
400i Penumbra (Limited Concierge Exclusive) Black, Gold Trim $30
600i Auspicious Red (Dragon) Red & Gold $20
600i Auspicious Red (Dog) Red & Gold $20
600i Fortuna dark green - iridescent $20
2951 Auspicious Red Pack Ram (Freelancer, Nomad) Red & Gold $20
2953 Auspicious Red Pack Rooster (Carrack, Pisces) Red & Gold $25
2952 Auspicious Red Pack Monkey (Connie, Sabre) Red & Gold $25
2954 Auspicious Red 8 Pack - Dog & Dragon (X1, 100i, 400i, 600i) Red & Gold $65
https://preview.redd.it/9aza88769y3d1.jpg?width=3840&format=pjpg&auto=webp&s=6985fef1c0c161ff42531b9593f1216c7577fc12
4. Armors / Weapons / Other:
Title: Description: Total After Fees:
Advocacy Tools (JP) Faction 9 Baton, E&I M34 Restraint System $80 obo
Citizencon 2951 Digital Goodies Pack (JP) 2951 Trophy, Arden Balefire Armor Set, RRS Fallout Knife $40
Fieldsbury Dark Bear Helmets Choice of Pink / Brown / Orange / Green / Purple / Teal $6
Fieldsbury Dark Bear Sinister Pack (all six helmets) $30
Normal Subscriber Items Ask Ask
Plentiful Salvage Space Globe 2015 (JP) $10
Star Citizen Digital Novella 2013 $17
SQ42 Digital Manual 2013 - $20
Game Universe Map Digital Star Map $7
https://preview.redd.it/dcvwva289y3d1.png?width=1920&format=png&auto=webp&s=833de607d5643b0ca7e30dc9ee89639f582b925f
Subscriber items being sold at a loss (no markup for fees):
Title: Description: Total After Fees:
C2 Hercules Starlifter Plushie (SALE) $4
Mandible Snowfly Helmet (Fl) (SALE) $4
"Igniter" Lightning Co. Weapons Pack (Fl) Atzkaz sniper & Yubrev Pistol (SALE) $8
"Venom" Lightning Co. Weapons Pack (Fl) Atzkaz sniper & Yubrev Pistol (SALE) $8
Neoni "Tengubi" Helmet (Fl) (SALE) $4
"Venom" Lightning Co. Weapons Pack (El) Atzkaz sniper & Yubrev Pistol (SALE) $8
Avenger Copernicus Paint (El) (SALE) $5
100 Series Sand Wave Paint (El) (SALE) $5
Mandible Snowfly Helmet (El) (SALE) $4
Store Credit Sales:
These store credit sales are Middleman sales for clients, so prices are firm.
The price for each transaction is 60% of melt value + $20 per transaction to cover each giftable host ships. Transactions will be billed independently & limited to 1 per day to stay within CiG's $1000/day limit.
Available transactions are as follows:
Ship: Melt: Total After Fees:
Hammerhead (El) $725 $455
https://preview.redd.it/624njs5a9y3d1.jpg?width=1639&format=pjpg&auto=webp&s=eca2cda3619dd2906588618523a417efc3ee94c3
5. Accounts:
- 2014 Space Marshal Account with Unique MSR Night Runner Paint, OC Buyback Ships, Unique Limited Subscriber Items (Big Bennys Machine, 2946+ Trophies Etc.) & Legacy Backer Awards (Ask for more details.)
Details:
Currently liquidating store credit & buyback ships to lower the price.
Current price including everything prior to liquidation is $2230. After liquidating the excess on the account, price will be reduced to around $1400.
Notable Original Concept or Legacy buybacks: Polaris, Archimedes, Vulcan, F7C-M, X1 Force, Connie Phoenix 2015 anniversary edition, Endeavor Hope Class, Banu Defender, Hammerhead
-2013 Original Backer High Admiral Account with Original & Veterans Backer Reward, Free Hangar Fees Reward, RSI Class II Test Pilot Space Suit, OC buyback Ships & Legacy Alpha Packages, Unique Limited Subscriber & UEC Items from 2013-2014, F7A Mk II Upgrade & Legacy Backer Awards. Open to offers (Ask for more details.)
Details:
Currently liquidating giftables & rare game packages from the buyback.
Current price including everything is $3616. After liquidating excess from the account & buyback, price will be reduced to around $2300.
See ya round the Verse Citizen...Greetings fellow Citizens o7!
submitted by Slidebyte101 to Starcitizen_trades [link] [comments]


2024.06.01 14:09 PocketPillow Just finished my first ever playthrough of Fallout 4. My thoughts.

I'll be honest, I'm that guy that picked it up for $20 because of the TV show. I know the game came out ages ago but when it came out my kids were young and my video game time was nil.
I wanted to share my thoughts, if anyone cares. Maybe no one does, but I'm guessing everyone here has played through a bunch of times, has a bunch of mods downloaded, etc. so maybe you will.
1) Dogmeat is annoying, I made Codsworth my follower out of frustration.
Literally shot that dog dozens of times since he would jump between my gun and the enemy trying to be helpful. Then had to stimpack him out of guilt.
2) The Sad Couple and Minuteman Mission Giver made me avoid Sanctuary.
I know it's supposed to be home, but I actually made my home the Drive in Theater instead where I didn't have to listen to the couple complain or risk being given another Minuteman mission that I didn't want. I made a really cool base (at least I loved it). Building was tricky, but I basically made tiers of society up to the top of the screen. Wasted a ton of time but had a lot of fun.
I wished I could have reserved the top bed for myself, but I basically had the King's Quarters on the highest level, my citizens the next level down, shops below that, then my workshops, and surrounded on the bottom level with turrets.
And then... My citizens kept getting trapped under the ramshackle palace, which was annoying. But otherwise building was fun.
3) I loved exploring the world overall.
The little sidequest stories found on various terminals were really cool. Especially the vault ones, but also finding little email arguments and whatnot. I always read what they said. Getting the special power armor chest from that lab was also cool, they should have had more stumble upon things like that.
4) I found all 3 factions distasteful, but went with the Institute as my choice.
The Institute was the least bad option, and it had my family loyalty. I also loved the backstory of how it was founded by survivors living in tunnels and that they created a paradise, and were still expanding underground.
I didn't like how the story tried to drive me into the arms of the railroad. Sorry not sorry: AI isn't people. Building a machine for a purpose and using it isn't "slavery."
Meanwhile the Brotherhood wanting to destroy everything and rule through military might just drives the world into further dystopia.
Did I agree with everything the Institute was doing? No. Replacing people with Synths and experimenting on people is obviously bad, and is too "Vault" type thinking, but it felt like the game wanted me to find out the evil part of the seemingly perfect society in order to push me into the arms of the railroad but didn't make the evil part all that shocking.
Sorry not sorry, but attempting to murder and destroy people over "enslaving" technology that they make themselves wasn't my cup of tea. So the Institute was the least bad of 3 immoral options. At least society isn't going to be a brutal fascist Brotherhood or run by people that want to stop using technology to improve humanity.
5) After the main quest line was over everything was meaningless.
It felt like a real lost bit of potential not to have a "part 2" to the game where you rebuild society. Fishing the main quest should have been the halfway point. I would have loved post-main quests based on your faction of choice. Like reestablishing the CIT. Cleaning it up and using the Minuteman network to recruit townships and create a functioning society.
I've glanced at mods and I don't mean "download a mod that makes this town look like it did before the fall". I mean like recruiting townsfolk to produce wall panels and machinery in one of the factories. Establishing local school houses. Using the Institute to invent some Environmental Rad Away Processors to slowly purify the lake water. That sort of thing.
Part of the hollow feeling was that the world didn't change. We destroyed the Railroad and Brotherhood, but then... It's just raiders and super mutants. No where to progress. Not even a cheesy montage with a time lapse of society improving over the course of decades and a credits scene. No closure. Just back to killing NPCs that are trying to invade Greentop again... Overall I enjoyed the game, just felt like it was unfinished.
I was only level 41 when I finished the main quest line too. Just did Minuteman quests for a while. I put off finishing it until I unlocked the final level of mods for weapons and armor, but probably would have been fine to finish it 10 levels earlier.
6) I also didn't love that I was required to unlock hacking and lockpicking to finish the game.
I was going to anyway, but the game sets up for customizing you're character and then forces you to build a certain way. I felt like I was required to have a high Charisma guy that could pick every lock and hack every terminal. If I wanted to be an ignorant brute just kicking down doors that option wasn't open to me. That master lock can't be picked? BS, I'm wearing power armor and can punch a giant monster to death, pretty sure I can rip a wooden door off it's hinges!
7) The fact that Deacon was supposed to be their idea of "cool" showed the writers grew up watching 80s movies.
It was laughable how big of a dork he actually was.
submitted by PocketPillow to Fallout [link] [comments]


2024.06.01 14:02 d1j9q Strange interaction yesterday

Logged on yesterday at my camp (basic setup N of Morgantown airport). Jumped into bed to reset resting bonus. A level 120ish warps in, checking out my store, no problem. I start looking through my stash, start hearing gunfire. My new "friend" is firing his assualt rifle non-stop. Did they drop something for me? No, they firing AT me. Well PVP is off, so I guess again, no problem. Trying to muck around with my camp, my "friend" is STILL firing away, and then manages to push me off a ledge. Ok, slightly annoying now. I don't quite know how the PVP settings work so I don't fire back in case I turn PVP on. I hide behind a tree and he is still firing. I lure him over to a nearby Protectron but his firing doesn't seem to agro it. Ok, so how dedicated is this guy? I sprint non-stop to Eastern Regional Penitentiary and agro as many super mutants as I can see. I hide on the roof and try to see what's going on. Either the super mutants managed to kill my "friend", or he finally warp somewhere away. Anyway I continue back on my daily questing...
Seriously, what was the point? Were they just bored? Or were they trying to lure me into setting off PVP or was their goal something else?
submitted by d1j9q to fo76 [link] [comments]


2024.06.01 13:57 NyuPenyu me when the osu addiction hits

me when the osu addiction hits submitted by NyuPenyu to osugame [link] [comments]


2024.06.01 13:50 kpgummies [F4M] Super Mario World

I wasn't big into the Mario games. Kinda dumb baby games, or at least that was what I thought of them. My friend convinced me to play this new one though.... or maybe it was a remake. Either way I booted it up, of course I didn't wanna pay for a game I wouldn't like, and started to play. I got pretty far in it. It was pretty darn good. Odd focus on the world and characters. That was whatever though, not like it actually mattered. I played a bit more into it and got to a new area called the temple of experiences.
Fun gimmicks all around. As Mario you had to do certain tasks as different types of creatures from the world. Stuff like Goombas and Toads to more obscure stuff like a Shadow Siren or Broodal. But oddly, while I was nearing completion I felt more and more tired. But I got to the end... and oddly the boss wasn't a few jumps and you could beat them. It was some weird thing that asked questions. Then there was one of the final questions. "Have you tried all your possibilities?" I answered yes. then they asked "Good, which would you prefer?" A bunch of options appeared, each something from the universe. I selected and slowly fell asleep... guess I was tired.
I woke up in a jolt though, I felt odd... and then when I opened my eyes everything looked weirder... It only got weirder when I looked down to find myself... yet not myself. I was now stuck in the Mario universe as whatever I had picked!
So! You may be asking, "Why did you make this plot?" The answer? Paper Mario. I love the world and characters in that series and thought it would be fun to play out some stuff in the world! So speaking of that world, we should set some ground rules for it. These can be human versions, anthro or even just how they look in the games. All depending on what you're comfortable with. I'm fine with anything really. It could be a bob-omb or cheep cheep for all I care! I'd love to make my new character in there!
As for you? Who do you play? Well, I would like if you played a character who was in the world. No, not someone we already know like Mario or Luigi or Peach or Daisy. No... a background character basically. A toad or a goomba. Again, I am fine with anything. We could be a Yoshi and a Birdo for all I care! I do have a list of the ones I would like to play though! Just ask for that! Aside from being a background character... well... we can make up details about who you are and what you do and where this all is whenever we want! Mario has a pretty big world so we can use a new town we make up or a pre-established town like Toad Town or Petalburg. The sky is the limit... except if we do galaxy stuff and then it's even further!
I would like this to be a kinda chill RP, long term with a lot of slice of life stuff mixed with some fun Mario shenanigans. Like we can jump and run around all we want but really... we're a bit weak so it'd be best if we don't go too far out of town! Anyways... that's the jist of all this. A chill RP in the Mario world with fun elements all over! I would love to see exactly who wants to do this and what will come of this! Please don't hesitate to respond! I'll see ya soon!
submitted by kpgummies to RoleplayPartnerSearch [link] [comments]


2024.06.01 13:49 Shot-Phone472 TF-100 display - dual motor

Hello, so I have a heavy scooter with a dual motor (EZOTRON). my TF-100 display failed to turn on so I ordered a new one and replaced it with exactlly the same model. Now I have a dual motor scooter and I remember when i'm on gear 3 and dual motor it's super fast and strong but now when I replaced it, I changed the P settings to 48volts in 3 section. and still the scotter doesn't boost like it used to. I tried to play with the "P" settings but nothing works i'm hopeless. it does drive but defenitly not the full speed that I used it.
Can anyone help me with how I adjust it so it will work on the dual motor?
the change to 48volts didn't work. is there other way?
submitted by Shot-Phone472 to ElectricScooters [link] [comments]


2024.06.01 13:46 good-guy-coder Check Out NiimPrintX: A New App for NiimBot Label Printers!

Check Out NiimPrintX: A New App for NiimBot Label Printers!
I'm super excited to share NiimPrintX, a desktop app I've been working on for NiimBot label printers. There is both command-line and graphical user interface app to connect with the printer. It connects to your printer via Bluetooth and makes label printing a breeze. This is my first release and I am actively working on adding new functionalities.
GitHub Repository: NiimPrintX
NiimPrintX
Supported Printer Models:
  • D11/B21/B1
  • D110
  • B18
Cool Features:
  • Bluetooth Auto Discovery: Automatically finds your printer using its model name.
  • Easy Label Design: Create labels with a simple and intuitive GUI.
  • Predefined Icons: Spice up your labels with a set of built-in icons.
  • Cross-Platform: Works on Mac, Windows, and Linux.
  • Advanced Print Options: Includes calibration features for perfect prints.
Coming Soon:
  • Barcode Creation: Make your own barcodes right in the app.
  • QR Code Printing: Generate and print QR codes.
  • Better Object Alignment: More shapes and borders for your designs.
If you have a NiimBot label printer, you’ll definitely want to give NiimPrintX a try. I'm constantly working on adding new features, so keep an eye out for updates!
Check out the GitHub repo for more info and installation instructions: NiimPrintX
I'd love to hear what you think! Drop a comment or open an issue on GitHub with any feedback or suggestions.
Happy Printing!
submitted by good-guy-coder to niimbot [link] [comments]


2024.06.01 13:36 Gudge2007 Raspberry Pi 5 8gb works really well as a desktop computer replacement, even with my atrocious tab and app management

Raspberry Pi 5 8gb works really well as a desktop computer replacement, even with my atrocious tab and app management submitted by Gudge2007 to RaspberryPi5 [link] [comments]


2024.06.01 13:32 Razeno1d Why couldn't Azur Promilia be an Azur Lane RPG?

First of, I'm still super excited for Azur Promilia. Another open world RPG, more competition to already famous games in the genre. From a company that has done an insanely good job with Azur Lane. The game looks amazing.
Despite all of that excitement I am also sad, because for years I've been waiting for Azur Lane to get a modern, up to date PC-game. The story, uniqueness of the world, character design with skins is so insanely good in my opinion. Manjuu is known to have a good track record, a fair monetization model (although for the open world equivalent I wouldn't be surprised to see this change).
I see so much potential in an Azur Lane RPG in the style of Genshin, Wuwa. Arknights is getting its Endfield. It could have been extremely unique too, with you mostly exploring the oceans and seas. Navigating from country to country, continent to continent, going through the stories, seeing all the different fractions and their story. I like Azur Lane's character design the most, the characters are super attractive, or cute and the skins are insane. It's such a shame and continously makes me think what could have been if instead of Manjuu doing Azur Promilia we would have gotten an open world RPG Azur Lane.
Of course I'll still play Azur Promilia and I'm sure it will be a good game, by a good developer in a beautiful setting, but deep down I'm still waiting for a new, modernized Azur Lane game on PC, like I've been waiting for years already. Maybe one day...
submitted by Razeno1d to gachagaming [link] [comments]


http://activeproperty.pl/