Kinder activities for the life cycles

LifeAdvice

2010.02.23 18:09 grevia LifeAdvice

Ask fogive life advice. Before commenting or posting, please read the RULES OF THIS SUB: https://www.reddit.com/LifeAdvice/about/rules/ ♦ The mod team are working to make this sub a kinder, more welcoming place. Please report any unruly behavior, unkind comments, or trolling. Disruption of the peace may lead to a ban.
[link]


2019.05.04 02:57 AllieLikesReddit Vegan Zero Waste

A zero-waste community with a focus on vegan ethics
[link]


2008.01.25 07:54 College

The subreddit for discussion related to college and collegiate life.
[link]


2024.06.01 14:59 blo-om_875 I'm so afraid to talk, even on the internet.

Recently I've realized how reluctant I always am to comment or interact on any social media. I am generally pretty introverted but outspoken in real life. I'm not afraid to let my opinions be known, I'm also quite blunt with them in most cases. I don't actively seek out interaction and conversations but I don't shy away from them if someone else starts one. I'm very talkative with people who are close to me. I'm a gemini and I will always be extremely chatty when I'm comfortable.
Though, recently I've noticed how I hesitate to interact anywhere on the internet. Mostly because I've been wanting online friends for years. I think it has something to do with being perceived and judged even rejected maybe, specifically by unknown forces (people) typing away behind a screen. Also something to do with perfectionism on wanting to present myself and be seen in a certain way?
I just became hypersensitive to knowing I'm being seen and perceived even in everyday conversations as I usually run over every interaction almost obsessively laying in bed the night after.
The best way to describe it is like your words getting caught in your throat except it's literally my fingers hovering over the keyboard. Words flying through my mind but me physically too frozen or stuck to type anything. If I do type it out I just go back and delete everything before I can even post.
How do I stop this? I don't want to keep being invisible. Even now, I'm considering whether or not I should even post this but I'm gritting my teeth and doing it anyway hahahahelp.
I want to just take the leap of faith but there's a part of me that's tired of always having to be brave. Even though that usually results in me just feeling isolated and lonely as an observer when I just want to participate. I just want to make friends. It's a constant tug of war and it's getting more crippling by the day.
Does anyone have any tips?
P.s. Sorry if this whole post is wrong in some way, it's literally my first time posting anything on reddit lmaoo.
submitted by blo-om_875 to introvert [link] [comments]


2024.06.01 14:55 RunZealousideal8674 Is it worth it for me (46F) to end my marriage to my husband (69M) for a maybe-chance at sexual or romantic love?

Hi. I (46F) got married to my husband (69M) almost 20 years ago. At the time, I'd never been in a sexual or romantic relationship with anyone else. I'd been deeply in love with an older man from my hometown, but he was unavailable and nothing ever happened. I'd always believed no man would ever like me. I was a little overweight, unathletic, unfeminine, and an all-around dork. My parents sort of made me feel like this. For example, when I was in high school I was on Accutane for acne. Because Accutane would harm a fetus, every pill packaging had a "no" symbol on the front, with a pregnant woman crossed out. My dad would joke about it: "No wait, ARE you supposed to get pregnant while on Accutane?!" The joke was that someone like me would NEVER get pregnant, NEVER have a boyfriend even.
Then, when I was 18, I fell in love with that older man. But I couldn't have him. I spent a lot of my college years in love with him from afar. I never had a boyfriend in college. One guy liked me, but I didn't know how to handle it or really what to do. When I was 24, I met my now-husband at work. He was older, which I was comfortable with, and he was very nice and helpful. I'd gone out with a couple other men in my new town. They'd kissed me and caressed me on the dance floor, and I didn't know how to handle it. My now-husband never made any "moves" like that. So I was comfortable.
We got married when I was 26, and he was 49. I didn't know anything about anything. Our sex life was fine. I didn't like it at first, but then I grew to like it a lot. We had two children, a boy and a girl, 22 months apart. Life went on pretty well for many years.
Then, when I was 39, I went out for coffee with a male friend. And he told me some very intimate stuff about his own life. After a one-hour coffee, I knew more about him than I knew about my husband. Plus, I was attracted to this man. He was about my age, and we had a lot in common. It was a new experience for me: emotional intimacy and physical attraction. I'd never had either with my husband. But I was so inexperienced, I didn't know what I'd been missing.
Later that summer I decided to go to the gym. Since then, I've lost 40 pounds and kept it off. I am now very physically fit. I do yoga daily, lift weights, do cardio, and I just started taking tennis lessons. Never, ever did I think I could do anything physical. But I've realized I can. My mantra is: I am feminine. I am sexy. I am strong. And now I've discovered I am. I love doing athletic things. I love feeling strong and fit and capable.
In 2020, I posted for the first time on Reddit. On Normal Nudes. And I had an overwhelmingly positive response. It's hard to overstate that--before--I never felt attractive or feminine. Now I had men telling me I had the best breasts they'd ever seen. That I'm a beautiful woman. I really could not believe it. I started posting on GoneWild, and was very successful there too. And an OnlyFans model reached out to me and said: "I think you'd be very successful on OnlyFans." All this time, I never thought I was attractive. So this was absolutely amazing to me.
Meanwhile, I'd tried to get my husband interested in all this. I'd discovered intimacy and sexuality. And I wanted emotional intimacy and sexual connection with him. I tried for two years. But it never worked. He hated talking about sex. He said he did it with me: "Because you like it." I tried to show him the beautiful nude photographs I'd been taking. And he didn't want to see them. One time he cringed and turned away. I cried so much over this. I wanted him to desire me. But he never did. He'd told me several years earlier that I wasn't physically his type. He just didn't find me attractive. But he loved me because I'm a good mom. He'd been married once before, and they didn't have kids. When it finally occurred to me to ask, he told me that he and his first wife had sex about three times a year. One time I asked him, "Do you like men?" He said, "I don't like anybody." He's 69, like I said. If he were younger he'd probably identify as "asexual." But he doesn't care about identity or anything like that. He just doesn't like sex.
In 2021, I had my first extramarital encounter. I'd gotten a lot of confidence from Reddit. Since then, I've slept with seven men outside my marriage. They've all been younger than I am. All but one have been in their 30s. They're all attractive, interesting men. It is still shocking to me--although less shocking than it used to be--that men find me attractive. But they do. And, honestly, I am attractive now. I put a lot of work into my body, and I have a very feminine style. I always say, "I'm in my body with the zeal of a convert." Because for so long I never knew I could be like this. It is a true miracle for me. I "became a woman" in my 40s.
But I'm still with my husband. And I don't know what to do. My pride and joy are my children, ages 16 and 18. My husband and I have put a ton of care and love into raising them. I don't want to tear our family apart. I feel like I have a nice life. Throughout our marriage, my husband and I have always done our own thing. Even when our kids were little, my sister said: "You and X live like you're divorced." We spend a lot of time apart, and we're both okay with it. We live together like amiable roommates. He doesn't care at all about my sex life. He used to tell me: "Do what you need to do." We haven't slept together in almost three years.
Sometimes I think about leaving him and trying to find true love. I've never had that. What I'd love is "sex and conversation." My husband and I don't really have much in common. He has the mind of an engineer. He loves to build things, and he's a spatial thinker. I love nuance and spirituality and literature. My husband has always loved my "cheerful attitude." But he doesn't care about my body or femininity or all my ideas on spirituality and personal growth. We mostly talk about our kids, of course. And our cats. We do really well managing the kids' activities and taking care of them in our different ways. I've always lived like this with him. Separate emotional lives. And I've developed a very independent spirit.
Sometimes I yearn to be part of a couple. But I've never had that. And I don't know if it would be "worth it." Our kids are happy. I'm reasonably happy. I have my Reddit career and sexual partners if I want them. Sometimes I think I'm asking for too much. I have two beautiful children who I'm close to. And a nice, peaceful life. I don't know what to do.
submitted by RunZealousideal8674 to relationship_advice [link] [comments]


2024.06.01 14:55 A_Seductive_Cactus Subreddit Stats - May 2024

RomanceBooks Insights - Subreddit Stats for May 2024

Welcome to the monthly subreddit stats update! See here for previous month's stats. Here's what we'll be sharing in this post:
The below stats are all sourced from the u/romance-bot and include the past month of activity. Ranking is based on the number of times a book or author is called by the bot (which could include recommendations, critiques, reviews, etc). Genre, diverse characters, pairings, and steam groupings are based on how a book is tagged on Romance.io.
May 2024 u/romance-bot activity:

Top 20 Books Mentioned

Top Books Count
1 Failure to Match by Kyra Parsi 52
2 Hans by S.J. Tilly 46
3 Butcher & Blackbird by Brynne Weaver 45
4 In a Jam by Kate Canterbary 38
5 Eyes of Silver, Eyes of Gold by Ellen O'Connell 37
6 Bride by Ali Hazelwood 37
7 Yours Truly by Abby Jimenez 37
8 Funny Story by Emily Henry 36
9 At First Spite by Olivia Dade 33
10 A Deal with the Bossy Devil by Kyra Parsi 33
11 Against A Wall by Cate C. Wells 31
12 Heated Rivalry by Rachel Reid 30
13 A Substitute Wife for the Prizefighter by Alice Coldbreath 29
14 Love, Theoretically by Ali Hazelwood 29
15 Just for the Summer by Abby Jimenez 29
16 Lights Out by Navessa Allen 29
17 Honestly, I'm Totally Faking It by Amanda Gambill 28
18 Out On a Limb by Hannah Bonam-Young 28
19 Radiance by Grace Draven 28
20 The Worst Guy by Kate Canterbary 27

Top 20 Authors Mentioned

Top Authors Count
1 Lisa Kleypas 211
2 Alice Coldbreath 145
3 Cate C. Wells 133
4 Kate Canterbary 131
5 S.J. Tilly 126
6 Ali Hazelwood 122
7 Tessa Bailey 121
8 Mariana Zapata 117
9 Cassandra Gannon 107
10 Abby Jimenez 103
11 Kyra Parsi 96
12 Ruby Dixon 94
13 Kathryn Moon 92
14 Emily Henry 90
15 Linda Howard 89
16 Penny Reid 89
17 Susan Elizabeth Phillips 86
18 Nora Roberts 83
19 Heather Guerre 82
20 Tessa Dare 79

New Sub Favorites

Data is obtained by the u/romance-bot for the past month of activity and includes only books released within the past 3-months or upcoming releases. This is intended to give a view into the hot / rising books being mentioned in the sub.
New Favorites Count
1 Failure to Match by Kyra Parsi 52
2 Funny Story by Emily Henry 36
3 Just for the Summer by Abby Jimenez 29
4 The Alpha of Bleake Isle by Kathryn Moon 17
5 Truly, Madly, Deeply by Alexandria Bellefleur 15
6 Dust Storm by Maggie Gates 12
7 The Other Side of Disappearing by Kate Clayborn 11
8 After the Shut Up Ring by Cate C. Wells 11
9 King of Sloth by Ana Huang 8
10 Pucking Revenge by Brittanee Nicole 8
11 Leather & Lark by Brynne Weaver 7
12 You Should Be So Lucky by Cat Sebastian 7
13 Swift and Saddled by Lyla Sage 7
14 Why Cheese? by Ellen Mint 7
15 Quiet Types by L.H. Cosway 7
16 Not So Truly Yours by Julia Wolf 7
17 The Dixon Rule by Elle Kennedy 7
18 Wild Love by Elsie Silver 6
19 My Season of Scandal by Julie Anne Long 6
20 Maybe This Time by Cara Bastone, Zoe Chao, Noah Reid 6

Top 20 Books with Diverse MCs

Diverse MCs Count
1 Yours Truly by Abby Jimenez 37
2 Eyes of Silver, Eyes of Gold by Ellen O'Connell 37
3 A Deal with the Bossy Devil by Kyra Parsi 33
4 Heated Rivalry by Rachel Reid 30
5 Role Playing by Cathy Yardley 25
6 Lola & the Millionaires: Part One by Kathryn Moon 22
7 Dom by S.J. Tilly 22
8 All Rhodes Lead Here by Mariana Zapata 19
9 By a Thread by Lucy Score 19
10 Get a Life, Chloe Brown by Talia Hibbert 19
11 The Right Move by Liz Tomforde 19
12 Get a Life, Chloe Brown by Talia Hibbert 19
13 The Master by Kresley Cole 18
14 Luna and the Lie by Mariana Zapata 17
15 Scheme by Colette Rhodes 16
16 The Flatshare by Beth O'Leary 16
17 Wait for It by Mariana Zapata 15
18 The One Month Boyfriend by Roxie Noir 15
19 Kulti by Mariana Zapata 14
20 How to End a Love Story by Yulin Kuang 13

Most Mentioned Books by Pairing

MM Count
1 Heated Rivalry by Rachel Reid 30
2 Time to Shine by Rachel Reid 18
3 The Long Game by Rachel Reid 12
4 The Weight of It All by N.R. Walker 11
5 You & Me by Tal Bauer 11
6 Saint by Sierra Simone 9
7 Him by Sarina Bowen, Elle Kennedy 9
8 Moth by Lily Mayne 9
9 Boyfriend Material by Alexis Hall 8
10 Glitterland by Alexis Hall 8

FF Count
1 Home for the Holidays by Erin Zak 6
2 The Sex Therapist Next Door by Meghan O'Brien 6
3 Scarlett Fever by Claire Highton-Stevenson 6
4 Principle Decisions by Thea Belmont 6
5 Paper Love by Jae 5
6 Truth and Measure by Roslyn Sinclair 5
7 Above all Things by Roslyn Sinclair 5
8 Seeking Approval by Rachel Spangler 5
9 Meeting Mrs. Garret by Raquel De Leon 4
10 Bachelorette Number Twelve by Jae 4

Most Mentioned Books by Genre

Contemporary Count
1 Failure to Match by Kyra Parsi 52
2 Hans by S.J. Tilly 46
3 Butcher & Blackbird by Brynne Weaver 45
4 In a Jam by Kate Canterbary 38
5 Yours Truly by Abby Jimenez 37
6 Funny Story by Emily Henry 36
7 At First Spite by Olivia Dade 33
8 A Deal with the Bossy Devil by Kyra Parsi 33
9 Against A Wall by Cate C. Wells 31
10 Heated Rivalry by Rachel Reid 30

Historical Count
1 Eyes of Silver, Eyes of Gold by Ellen O'Connell 37
2 A Substitute Wife for the Prizefighter by Alice Coldbreath 29
3 Devil in Winter by Lisa Kleypas 24
4 The Highwayman by Kerrigan Byrne 19
5 The Duchess Deal by Tessa Dare 18
6 Chasing Cassandra by Lisa Kleypas 18
7 Lord of Scoundrels by Loretta Chase 17
8 A Bride for the Prizefighter by Alice Coldbreath 17
9 Her Baseborn Bridegroom by Alice Coldbreath 15
10 Love in the Afternoon by Lisa Kleypas 14

Fantasy Count
1 Bride by Ali Hazelwood 37
2 Radiance by Grace Draven 28
3 Transcendence by Shay Savage 23
4 His Secret Illuminations by Scarlett Gale 22
5 Paladin's Grace by T. Kingfisher 21
6 The Undertaking of Hart and Mercy by Megan Bannen 21
7 The Fake Mate by Lana Ferguson 21
8 Burn for Me by Ilona Andrews 20
9 His Forsaken Bride by Alice Coldbreath 19
10 Hot Blooded by Heather Guerre 18

SciFi Count
1 Homebound by Lydia Hope 17
2 Strange Love by Ann Aguirre 17
3 Choosing Theo by Victoria Aveline 15
4 When She Belongs by Ruby Dixon 14
5 The Last Hour of Gann by R. Lee Smith 12
6 Last Light by Claire Kent 11
7 Lust for Tomorrow by Dana Sweeney 10
8 Captive of the Horde King by Zoey Draven 10
9 Claimed By The Horde King by Zoey Draven 9
10 The Carnal Games by Naudii Nebula 9

🌵 Miscellaneous Cactus Thoughts...
  • Is this the end of Ruby Dixon? Now that I've snagged your attention with that clickbait, I'm sad to report Ruby Dixon does not have a book in the Top 20, but also fell to #12 most mentioned author. Truly surprising given that she's been steadily in the top author spot almost every month for over a year! Are we seeing a shift away from the popularity of alien scifi romance, and what is it shifting to?
  • Looking at the Top 20 books, there are four authors who are dominating: Kyra Parsi, Kate Canterbary, Ali Hazelwood, and Abby Jiminez all have two books in the Top 20. Kudos to them!
  • Our Spring Reading Challenge is wrapping up soon - and we are holding a bonus June Read the Rainbow Challenge in honor of Pride month!
Hope you enjoyed the stats!
submitted by A_Seductive_Cactus to RomanceBooks [link] [comments]


2024.06.01 14:50 abd145 Fan noise when closed

Hi I recently got a Lenovo loq and am pretty happy with it My only issue is that at night when I close the lid of the monitor ever 5 mins the fans become active for a bit then stop and this cycle repeats until I shut the laptop down anyone know what’s causing this and how to fix it
submitted by abd145 to LenovoLOQ [link] [comments]


2024.06.01 14:48 No-Marionberry-6769 DJI Osmo Action 4 Standard Combo 4K Waterproof Action Camera Bundle

DJI Osmo Action 4 Standard Combo 4K Waterproof Action Camera Bundle
Experience Adventure Like Never Before with the DJI Osmo Action 4 Standard Combo - 4K Waterproof Action Camera Bundle
https://preview.redd.it/nof8aipzhy3d1.jpg?width=1500&format=pjpg&auto=webp&s=16e6f0d879b6192ec22f6c08baedd833613a0984
Description:
Unlock your potential for capturing breathtaking moments with the DJI Osmo Action 4 Standard Combo. This 4K waterproof action camera bundle is designed for adventurers and content creators who demand the best in video quality, durability, and versatility. Whether you're diving into the deep, conquering mountain peaks, or cruising on your bike, the Osmo Action 4 ensures every moment is captured in stunning detail.
Why Choose the DJI Osmo Action 4 Standard Combo?
  • 4K Ultra HD Video: Record your adventures in crystal-clear 4K resolution at 60fps, delivering lifelike and immersive footage.
  • Waterproof Design: Dive up to 36 feet (11 meters) underwater without a housing, making it perfect for all your water-based activities.
  • Dual Screens: Frame your shots effortlessly with the dual screens - a front screen for selfies and vlogging, and a rear touchscreen for easy navigation.
  • RockSteady Stabilization: Achieve smooth and stable footage, no matter how intense the action, with advanced electronic image stabilization.
  • HDR Video: Enhance your videos with High Dynamic Range (HDR) for more vivid colors and better detail in highlights and shadows.
Key Features:
  • Quick Switch: Seamlessly switch between modes with the Quick Switch button, ensuring you never miss a moment.
  • Voice Control: Operate your camera hands-free with simple voice commands, perfect for capturing footage while on the move.
  • Custom Exposure Settings: Take control of your shots with custom exposure settings, including manual and semi-automatic modes.
  • Long Battery Life: Enjoy extended shooting sessions with a powerful battery that keeps up with your adventures.
  • Comprehensive Accessories: The Standard Combo includes a range of accessories to enhance your filming experience, from mounts to adhesive pads.
Customer Reviews:
⭐️⭐️⭐️⭐️⭐️ "The DJI Osmo Action 4 has completely transformed my travel vlogs. The 4K video quality is amazing, and the stabilization is top-notch. It's also super easy to use, even underwater!" - Rachel T.
⭐️⭐️⭐️⭐️⭐️ "This action camera is a beast! The dual screens are incredibly useful, and the footage quality is unparalleled. It's a must-have for any adventure seeker." - Mark L.
Capture Your Adventures with the DJI Osmo Action 4 Standard Combo!
Don't let your epic moments go unrecorded. The DJI Osmo Action 4 Standard Combo is the perfect tool for capturing high-quality, immersive footage of your adventures. Click here https://youtu.be/pH90UQtDg5k to purchase your DJI Osmo Action 4 today and elevate your content creation to new heights!

DJIOsmoAction4 #ActionCamera #4KVideo #WaterproofCamera #AdventureReady #RockSteady #TravelVlog #OutdoorPhotography #DualScreens #CaptureEveryMoment

submitted by No-Marionberry-6769 to BestToBuyUSA [link] [comments]


2024.06.01 14:46 Gilmorecafe Thoughts on not following a plan and just doing whatever workout I feel like doing that particular day.

Hi, I grew up playing soccer competitively my whole life and all through university so I was used to training/lifting 5x a week in the gym. I'm 25 now and kept up with following a program in the gym 4-5x a week, but these days I just don't feel like doing it anymore.
I enjoy the results i've seen by following programs. I still play soccer recreationally and i'm still able to keep up the way I was a couple years back and I do attribute this to how active i've been since I stopped playing at high levels. However, i'm finding it super draining being so strict in the gym.
Some days I don't want to lift, i'd rather do something like pilates, yoga, running, boxing, maybe even a bodyweight circuit or something to that effect. I'm curious what opinions others have on just doing what I feel like doing on a given day. No program, no plan, just waking up and deciding how I want to spend my active time for the day. Effect on physique, effect on mental, effect on weight loss or muscle mass, your experience if you've transitioned to a similar split, etc. Just looking for thoughts & discussion! Thanks.
submitted by Gilmorecafe to xxfitness [link] [comments]


2024.06.01 14:46 Fit_Editor_8886 Am I asexual…

I’ve been struggling with this for years. I’m 28f, tons of sexual trauma and been through abusive relationships, after being able to escape those the only way I would have sex or participate in sexual activities was if I was as close to blackout drunk as possible. I’ve gone through a lot of therapy and healing and am in what everyone would call a healthy relationship, but I dread having sex, it’s always “I guess I have to do this” or “when will this be over” it’s not that it’s bad, I’m just never enjoying myself and always wishing I didn’t have to do this. I enjoy physical touch and cuddling and kissing but anything more and it’s just immediate annoyance and dread. I can absolutely acknowledge that I’ll probably never fully get over the sexual trauma I’ve experienced, but I’m sober, I feel like I’m in a better place in my life, I’ve worked hard to heal and continue healing I just don’t ever want to have sex. I find everyone attractive for a while I thought I was pan. But truly I just love admiring how gorgeous people are. I don’t know if I’m asexual and I think I’m just grasping at any answe help anyone can give me.
submitted by Fit_Editor_8886 to asexuality [link] [comments]


2024.06.01 14:44 jacymark4321 Deep Brain Stimulation Surgery: Advanced Treatment for Neurological Disorders

Deep brain stimulation surgery is an advanced medical operation used to treat neurological disorders such as dystonia, essential tremor, and Parkinson's disease. A tiny electrode is implanted into particular brain regions in order to accomplish this. The pacemaker-like implanted in the chest, which transmits electrical impulses to control aberrant brain activity, is connected to these electrodes. The quality of life for patients suffering from tremors, stiffness, and motor irregularities can be greatly enhanced with DBS. Patients who do not respond well to medicine are usually the ones who get this treatment. For the management of chronic neurological illnesses, DBS is a minimally invasive, reversible, and customizable therapy option.
submitted by jacymark4321 to u/jacymark4321 [link] [comments]


2024.06.01 14:44 Competitive-Chip-791 FamiSafe Parental Control App: Keeping Your Kids Safe in a Digital World

FamiSafe Parental Control App: Keeping Your Kids Safe in a Digital World
In today's digital age, where children are increasingly reliant on smartphones and tablets, keeping them safe online can be a daunting task for parents. Wondershare FamiSafe Parental Control App (~https://FamiSafe.wondershare.com~~)~ emerges as a valuable tool in this endeavour, offering a comprehensive suite of features designed to monitor your child's online activity, manage their screen time, and ensure their physical safety. This review dives deep into FamiSafe's functionalities, exploring its strengths and potential drawbacks while also highlighting how it can contribute to your child's digital well-being.
https://preview.redd.it/i6qt65mghy3d1.png?width=1726&format=png&auto=webp&s=6e88833c8de9022e06edd0422fd734a0703d82d1
Introducing Wondershare FamiSafe
Hey there, parents! Let's talk about something that's been on all of our minds lately: keeping our kids safe in the digital age. With screens becoming a bigger part of our children's lives every day, it's essential to have tools that help us navigate this brave new world. That's where Wondershare FamiSafe comes in.
Wondershare FamiSafe isn't just another app – it's your partner in parenting in the digital era. Developed by Wondershare, a trusted name in digital solutions, Wondershare FamiSafe is a comprehensive parental control app for Track cell phone location ~https://FamiSafe.wondershare.com/mobile-tracketrack-phone-number-location-online-for-free.html~ designed to make your life easier and your kids' online experience
Outstanding Features to Control Your Child's Device:
FamiSafe boasts a robust set of features, allowing you to take control of your child's digital life:
Real-Time Location Tracking and Geofencing: See your child's whereabouts on a map at any time for peace of mind. Create virtual boundaries (geofences) around specific locations and receive instant alerts if your child enter or leaves these zones.
https://preview.redd.it/grcf4l2jhy3d1.png?width=586&format=png&auto=webp&s=4a7f98a4c559b6450ebe3db27133134c68cf885d
New Feature: Screen Viewer (Recently Introduced) Gain a deeper understanding of your child's app usage with FamiSafe's new Screen Viewer feature. This allows you to remotely view a live snapshot of their screen activity, providing valuable insights into how they're interacting with their device. See what apps they're using, what content they're viewing, and even monitor their social media activity (on compatible apps)—all from your parent device.
Screen Time Management and App Blocking: Set healthy screen time limits for your child's device as a whole or for specific apps. Block access to inappropriate apps completely, shielding them from harmful content.
Web Filtering and Safe Search: Block websites based on pre-defined categories and enable safe search mode to ensure search engines prioritise filtering out inappropriate results.
App Monitoring and Content Monitoring: Gain insights into how your child spends their time on different apps. Monitor their activity within communication and social media applications to identify potential cyberbullying or inappropriate interactions. Set alerts for specific keywords or phrases used in their chats for early intervention.
Driving Monitoring: (for parents with teenage drivers) Track driving behaviours like speed, harsh braking, and sudden accelerations. Receive alerts for risky driving habits, promoting responsible behaviour behind the wheel.
Schedule Screen Time: Create a schedule for screen time allowances, ensuring your child prioritises sleep, homework, and other activities.
Remote Lock and Wipe: Remotely lock or wipe your child's device if it is lost or stolen, protecting their personal data.
Browse History and App Download Approval: View your child's browsing history and approve or deny app downloads, fostering responsible online behaviour.
But FamiSafe isn't just about features – it's about making your life as a parent easier. Setting up FamiSafe is a breeze. Simply download the app from the App Store or Google Play Store on both your device and your child's device, sign up for an account, and follow the on-screen instructions to connect the devices. From there, you can customise settings to fit your family's needs and start monitoring and managing your child's device remotely from the FamiSafe dashboard on your own device.
How to Use FamiSafe:
Using FamiSafe is a breeze:
1. Download and Install: Download and install the FamiSafe app on your parent device (phone or tablet) and your child's device. Here you can download application for Iphone and Android.
https://preview.redd.it/58ls1gikhy3d1.png?width=400&format=png&auto=webp&s=6796e102c393f2deb7425f9de9334a84ecfa82ef
~https://play.google.com/store/apps/details?id=com.wondershare.FamiSafe~
~https://apps.apple.com/us/app/FamiSafe-parental-control-app/id1385417904~
2. Create an Account: Create a FamiSafe account or log in to an existing one.
3. Pair the Devices: Follow the on-screen instructions to pair your devices using a pairing code.
4. Configure Settings: Explore the FamiSafe app on your device to configure the various parental control settings based on your needs, including enabling the new Screen Viewer feature.
Now, I know what you're thinking – how much is this going to cost me? The good news is that FamiSafe offers flexible pricing plans to suit every budget. Whether you prefer a monthly subscription or a yearly plan, there's an option for you. Plus, you can subscribe directly through the app or on the Wondershare website, making it easy to get started right away.
Pricing and Availability:
FamiSafe offers a free trail plan with limited features. To unlock the full suite of functionalities, including Screen Viewer, you'll need a subscription plan for Family or Schools.
https://preview.redd.it/4siy6n6mhy3d1.png?width=1306&format=png&auto=webp&s=f3816711c430820f984a94bcbc069c3b2cbd3ec0
Free Package:
● Cost: $0 (Trail Plan for 1 Devices)
● Features: Basic content filtering, app blocker, location tracking, geofencing, activity report.
Paid Package:
● Monthly Plan: $9.99/month ( protect up to 5 Devices)
● Quarterly Plan: $19.99/quarter ( protect up to 10 Devices)
● Yearly Plan: $59.99/year ( protect unlimited Devices)
● Features: All features of the free package, plus advanced content filtering, screen time control, Remote screenshots, Screen monitor, Screen tracker, gps tracker and many more
Availability: FamiSafe is available for download on iOS, Android, and desktop platforms, ensuring compatibility with a wide range of devices. Users can easily access and manage their family's digital safety from their preferred device, seamlessly integrating FamiSafe into their daily routine. Whether at home or on the go, FamiSafe offers comprehensive protection and peace of mind for families worldwide.
Visit our website for detailed prices and plan
https://famisafe.wondershare.com/store/family.html
Conclusion:
Wondershare FamiSafe is a comprehensiveparental control app[[2]](#_msocom_2) for screen time control or screen monitor that empowers parents to keep their children safe online and promote healthy digital habits. With its user-friendly interface, robust features like the new Screen monitor and gps tracker , and affordable pricing plans, FamiSafe is a valuable tool for families navigating the ever-evolving digital landscape. Remember, open communication with your child about online safety remains key. FamiSafe complements these conversations by providing the tools you need to monitor activity, set boundaries, and guide your child towards responsible digital citizenship.
submitted by Competitive-Chip-791 to u/Competitive-Chip-791 [link] [comments]


2024.06.01 14:43 ThatLooseMoose Spot recommendations near Tokyo in Winter

Hey!
A group of friends and I are currently planning our first trip to Japan for late Jan into Feb, mostly to experience some snow. We've currently locked in a week in Hakkuba which I can't wait for! My friends are mostly keen on leaving 2 weeks available to explore the rest of Japan outside of shredding the slopes, and are keen on hitting mostly Tokyo/Osaka/Kyoto.
My partner and I personally want to dedicated more time to experiencing Japan, so we're looking at going for an extra week before the rest of our friends arrive, and here is where I'm a bit stuck.
I want to save the main tourist parts of Tokyo, as well as Osaka/Kyoto for when I'm with the full group. I also don't want to adventure out too far, and then have to dedicated a full day or more travelling back to Tokyo to meet with everyone if i can avoid it.
I also feel most of my friends will be keen on the night-life, and tourist heavy attractions, so I want to focus on the nature/history/culture and take it a bit slower for this first week before everyone else arrives.
So far the snow festival looks great, but may be a bit of a distance to travel (unless you believe it's worth dedicating most of the week for). I would love to go to a small town to see the country side, hike and see the day to day life in Japan but am not sure how feasible that would be in winter.
So here is my question; what would be your recommendations for places/activities to do in the proximity of Tokyo for a week in the Japanese Winter time?
Sorry for the wall of text, any advice is greatly appreciated!
submitted by ThatLooseMoose to JapanTravelTips [link] [comments]


2024.06.01 14:41 wisdomonk How to deal with desire?

‘Everyone in the world has desires even if someone deny of this fact’
If someone denies that they are desirous then the person would be loveless, dead from inside, and has kept his desires suppressed. The other possibility is that the person has attained joy, and its sign is a loving person, but the probability of this is very low.
“Desires are inside everybody, and behind all desires is the wish to ultimately attain satisfaction”
Like, suppose you like candy so much that whenever you see that candy even in someone’s mouth, you just want to take that candy out of that person’s mouth and then eat it.
The maximum number of candies you’ve ever eaten together in the mouth is two. Now if I fill your mouth with ten candies, then what will happen is that the wish to eat candy will vanish completely. Then the next time you see that candy, the body will crave it, but you will not be interested in eating it.
Internally, the wish to eat the candy is dead as you have seen that even after eating so many candies, you are unable to get satisfied and all this happens inside you without even you knowing about it. This is like a practical which you can try yourself by trying to eat your favorite food more than how much you usually eat.
What happens inside you when you see a candy is that bodily cravings start to come. Now like everyone, you too are chasing satisfaction. The cravings give you an illusion that the candy can make you satisfied but after you’ve eaten like ten candies, then you will understand that it cannot provide you satisfaction but just taste.
Next time when you see the candy, the attraction will be gone and just the cravings will be left. But still, you will eat the candy and give it another try as indeed gives satisfaction only for a few moments, but we want everlasting satisfaction. This explanation is not limited to candy but applies to all bodily pleasures like sex and food.
Sleep too is the state of satisfaction and that’s why people like to sleep so much more than most of other activities of life. Whatever activities a common man does is unable to reduce his dissatisfaction and suffering in life. And so, sleep is a slightly better substitute for those works as dissatisfaction is absent.
But the twist here is that joy or the hope of joy is always the reason why you choose pleasure or any indulging activity like playing guitar or oversleeping even when your body is desperately telling you to sleep. Joy is the only reason why you were selfless at any point in your life.
Humans cannot get the satisfaction that even animals have whose bodily needs are fulfilled. But humans can achieve something even higher than satisfaction which is joy, but it requires your will and effort.
Joy is the satisfaction with our current state despite being in pain and agony as well as having unending love and care for every living being. You can learn more about joy in the article ‘Ending the Life’s Agony with Joy’.
submitted by wisdomonk to joyouslife [link] [comments]


2024.06.01 14:37 RunZealousideal8674 Is it "worth it" to give up my secure life for a maybe-chance at sexual and romantic love?

Hi. I (46F) got married to my husband (69M) almost 20 years ago. At the time, I'd never been in a sexual or romantic relationship with anyone else. I'd been deeply in love with an older man from my hometown, but he was unavailable and nothing ever happened. I'd always believed no man would ever like me. I was a little overweight, unathletic, unfeminine, and an all-around dork. My parents sort of made me feel like this. For example, when I was in high school I was on Accutane for acne. Because Accutane would harm a fetus, every pill packaging had a "no" symbol on the front, with a pregnant woman crossed out. My dad would joke about it: "No wait, ARE you supposed to get pregnant while on Accutane?!" The joke was that someone like me would NEVER get pregnant, NEVER have a boyfriend even.
Then, when I was 18, I fell in love with that older man. But I couldn't have him. I spent a lot of my college years in love with him from afar. I never had a boyfriend in college. One guy liked me, but I didn't know how to handle it or really what to do. When I was 24, I met my now-husband at work. He was older, which I was comfortable with, and he was very nice and helpful. I'd gone out with a couple other men in my new town. They'd kissed me and caressed me on the dance floor, and I didn't know how to handle it. My now-husband never made any "moves" like that. So I was comfortable.
We got married when I was 26, and he was 49. I didn't know anything about anything. Our sex life was fine. I didn't like it at first, but then I grew to like it a lot. We had two children, a boy and a girl, 22 months apart. Life went on pretty well for many years.
Then, when I was 39, I went out for coffee with a male friend. And he told me some very intimate stuff about his own life. After a one-hour coffee, I knew more about him than I knew about my husband. Plus, I was attracted to this man. He was about my age, and we had a lot in common. It was a new experience for me: emotional intimacy and physical attraction. I'd never had either with my husband. But I was so inexperienced, I didn't know what I'd been missing.
Later that summer I decided to go to the gym. Since then, I've lost 40 pounds and kept it off. I am now very physically fit. I do yoga daily, lift weights, do cardio, and I just started taking tennis lessons. Never, ever did I think I could do anything physical. But I've realized I can. My mantra is: I am feminine. I am sexy. I am strong. And now I've discovered I am. I love doing athletic things. I love feeling strong and fit and capable.
In 2020, I posted for the first time on Reddit. On Normal Nudes. And I had an overwhelmingly positive response. It's hard to overstate that--before--I never felt attractive or feminine. Now I had men telling me I had the best breasts they'd ever seen. That I'm a beautiful woman. I really could not believe it. I started posting on GoneWild, and was very successful there too. And an OnlyFans model reached out to me and said: "I think you'd be very successful on OnlyFans." All this time, I never thought I was attractive. So this was absolutely amazing to me.
Meanwhile, I'd tried to get my husband interested in all this. I'd discovered intimacy and sexuality. And I wanted emotional intimacy and sexual connection with him. I tried for two years. But it never worked. He hated talking about sex. He said he did it with me: "Because you like it." I tried to show him the beautiful nude photographs I'd been taking. And he didn't want to see them. One time he cringed and turned away. I cried so much over this. I wanted him to desire me. But he never did. He'd told me several years earlier that I wasn't physically his type. He just didn't find me attractive. But he loved me because I'm a good mom. He'd been married once before, and they didn't have kids. When it finally occurred to me to ask, he told me that he and his first wife had sex about three times a year. One time I asked him, "Do you like men?" He said, "I don't like anybody." He's 69, like I said. If he were younger he'd probably identify as "asexual." But he doesn't care about identity or anything like that. He just doesn't like sex.
In 2021, I had my first extramarital encounter. I'd gotten a lot of confidence from Reddit. Since then, I've slept with seven men outside my marriage. They've all been younger than I am. All but one have been in their 30s. They're all attractive, interesting men. It is still shocking to me--although less shocking than it used to be--that men find me attractive. But they do. And, honestly, I am attractive now. I put a lot of work into my body, and I have a very feminine style. I always say, "I'm in my body with the zeal of a convert." Because for so long I never knew I could be like this. It is a true miracle for me. I "became a woman" in my 40s.
But I'm still with my husband. And I don't know what to do. My pride and joy are my children, ages 16 and 18. My husband and I have put a ton of care and love into raising them. I don't want to tear our family apart. I feel like I have a nice life. Throughout our marriage, my husband and I have always done our own thing. Even when our kids were little, my sister said: "You and X live like you're divorced." We spend a lot of time apart, and we're both okay with it. We live together like amiable roommates. He doesn't care at all about my sex life. He used to tell me: "Do what you need to do." We haven't slept together in almost three years.
Sometimes I think about leaving him and trying to find true love. I've never had that. What I'd love is "sex and conversation." My husband and I don't really have much in common. He has the mind of an engineer. He loves to build things, and he's a spatial thinker. I love nuance and spirituality and literature. My husband has always loved my "cheerful attitude." But he doesn't care about my body or femininity or all my ideas on spirituality and personal growth. We mostly talk about our kids, of course. And our cats. We do really well managing the kids' activities and taking care of them in our different ways. I've always lived like this with him. Separate emotional lives. And I've developed a very independent spirit.
Sometimes I yearn to be part of a couple. But I've never had that. And I don't know if it would be "worth it." Our kids are happy. I'm reasonably happy. I have my Reddit career and sexual partners if I want them. Sometimes I think I'm asking for too much. I have two beautiful children who I'm close to. And a nice, peaceful life. Is it worth giving that up, for a maybe-chance at great sexual and romantic love?
submitted by RunZealousideal8674 to Advice [link] [comments]


2024.06.01 14:34 False_Extreme_2553 AITAH for not being more considerate of my Mom's feelings

Myself and my husband used to live in another city where we owned an apartment but after having a child 5 years ago we decided to move closer to where we were brought up to be closer to family and so our child could have a closer relationship with their grandparents.
My mom and I were always close but since moving back she's been quite controlling and critical of me, my parenting and how I want to live my life which means around every couple of months she ends up telling me she will never see me again. She always comes back into the fold after a week or so on the premise that she wants to see her grandchild and so the cycle continues. My child doesn't know any of this is going on in the background, we try to keep things normal for them. It's very exhausting but we want them to have a relationship and I would never want to stand in the way of that.
So the AITA question - my husband and I kept our apartment and rented it out because we weren't sure if we would like moving home and also as an investment for our retirement. However with changes in the economic outlook we decided to sell.
My mom knew we were selling but I didn't go into detail in terms of finances or what was agreed because she has very strong opinions (which she believes are always right) and likes to criticise so I thought best to avoid going into detail with her - after all it is our business, not hers and I felt keeping her at a distance from it was better for my mental health.
The sale finally went through after some difficulties which took months. I let her know it had gone through and we had made some money which was great. She seemed happy at first and I said we would find a way to celebrate.
The next day I received messages saying she will never see me again because I was sly. She won't answer calls but I can only imagine this is because she didn't know the details of the sale and how much money we made. She says she feels unwanted and I can only imagine this because I didn't offer to take her on holiday or something to share the wealth but I didn't feel I could say that when I didn't know exactly how much money we would be left with after taxes, paying off loans and contributing to our current house.
She suggested the money was for spending but I see it as a pot for ours and our child's future. I had thought we could go for a holiday with her as a thank you for all she's done for us over the years but didn't mention this because I hadn't spoken to my husband about it - he has little patience for her because of how she treats me. Now she has once again cut me off and said all this about me I am less inclined to give her money or take her on a holiday. AITA for not involving her more or for offering her a share of the money? Within a day she has disowned me for all this.
submitted by False_Extreme_2553 to AITAH [link] [comments]


2024.06.01 14:31 Potential-Lack-5185 Fan-Wars in the SUB. And are people wrong to extra-support their POC faves?

Edit: The downvotes have begun but hopefully that means people are reading till the end too. Will have to try the BridgertonRants sub as that seems more accepting of discussions and debates. : )
Would super appreciate it if everyone reads this long-ass thesis of a post with an open mind and to the end...its me being vulnerable in an anonymous reddit sub because i think these things matter in the larger framework of a uniquely special show and the big, bright, beautiful, multicultural gorgeous world we all as humans live in. My last post in this sub was downvoted to hell which btw totally ok...and i dont depend on reddit currency for my livelihood so its all good. I just care about my posts being read...specially this one.
Some context:
I'm very new to this community and reddit as well. Currently have time off work and going ham on reddit and venturing very scared into the deep dark of world of rabid fandoms and small niche communities. Getting a little burnt along the way but also learning from some super talented fans with their own eye-opening ideas and funny posts. Fans of all kinds, Im peeping into profiles, so white, black, brown multicolored rainbow of the world right here.
I'm also an aspiring writer and well...some of my best ideas have come from reddit lurking on cool and active subs with bridgerton sub being new for me. Jet lagged, anxious and just a tad bit antsy, I'm trying to go down and deep and maybe open some deeper discussions here.
I am Indian and lived primarily in India my whole life and now for the last 10 years between London and Canada (why am I sharing all this like and am I also going to tell you my weight, my height etc too...No but hopefully you'll understand this revelation as you read ahead without me spelling it out)
So I've been trying to figure out why fan wars as they pertain to this show prick so personally, so particularly.
I think fandoms anywhere in every country are full of insane people, obsessive chronically online people who find comfort through living through their faves..your beyonce stans, your rihanna stans, your Taylor Swift stans, your harry styles stans, your k pop stans, etc etc..
This show also has some rabid fans..But there is a conversation I want to open up only because I think it's important...Is fighting extra hard for your poc fave because you know their representation in pop culture is limited, their getting jobs is limited, subconscious biases exist even though we have been making great strides and even eradicated overt biases in employment, in accessibility, in government service etc etc ..and their culture not as dominant, their worlds not as seen or coveted.
Our ideas of beauty are framed by the extensiveness and longevity of colonial rule across the world.
there are shit people across all ethnicities religions and genders and nationalities. Barbarians, conquerors, invaders, pillaging villages raping women destroying livelihoods suppressing the peasant class, mutilating and diluting cultures- exist in Africa, the Indian subcontinent, East asia, middle East etc so not just Britain. Basically being brown, black or East Asian and Middle Eastern doesnt grant you moral superiority over white people and you can be racist and casteist and colorist and bigoted and biased and just all around shitty and criminal as a black, brown, east asian middle eastern etc etc person just as much as white people.
So now that thats settled, lets look at specific issues that POC only face because that eventually streams into the show and its politics and its discussion as well.
But for whatever reason ...the British were able to colonize on a scale that the other countries and ethnicities were not able to.. African and the Indian subcontinent's conquests and invasions were limited in area and time period...their scale of conquest limited to a small radius around their own countries...and not foreign lands travelled via sea etc.
As a result and only as a result and not because and I cannot emphasize enough that black, brown or east asian invaders, rulers etc were morally superior, kinder, less assholes...the culture that became dominant was white british culture..or european culture...if Indians had conquered the world, they would have imposed their culture on the lands and countries they invaded, if different African countries invaded the world to the extent of the british colonists, same thing...the dominant culture that would have been forcibly imposed by the people of african ethnicity would be their culture... Black skin would have been considered beautiful, white fair skin would not have been the standard....thats history....thats something we know to be true even through modern wars...the victor dictates...But that simply didnt happen.
it's not because t Africans or Asians or basically non white people are morally superior, more virtuous, incapable of terrorist acts or colonizing or I don't know were like we don't invade and conquest, we so good. But because that's history. They just didn't manage it. thats simply our current historical reality.
Being that the country or countries that did manage to conquer the world or close to 9/10ths of it were Europeans or more specifically British white nationals..which means as would happen even if another nationality had managed to invade the world, the culture that is dominant across the world is a west/white slanted world..
Colorism as a concept didnt exist until colonization: Why would it? If everyone existed under the same harsh sun, had the same skin color with minor variances...why would they think fair is more beautiful. Its because they wouldnt...the first blond haired blue eyed people would have been introduced to India via early traders of east india company in India and dutch colonists before them...Its like if everyone around you is brown, you assume thats just how everyone else looks like...thats the only reality you know...you simply havent seen anyone look any different..you havent seen blue eyes or anything else....same for africans and within that framework as humans are wont to do you create ideas of beauty.
So yes. POCs across the globe had just as arbitrary ideas of beauty as white people (chiense mutilated young women feet cuz small feet more beautiful, in africa genital mutiliation) because humans are humans and humans mess everything up...and animals are so much better...but color as a construct is a colonial one and one which managed to find deeep deep roots because of the extent of the rule, the sheer longevity, For context, India has been independent for the last 75 years..from over 200 years of colonial british rule...Not even the length of the life of a single human. Not even as long as Britains former queen was alive. It will take some more time for that in fighting and ideas of colorism deeply penetrated from the inheritance of our rulers to get dismanted...and totally thrown own...because you can freee from literall bondage more easily, the mind takes longer to adjust and form independent thought. But it will happen.
White people are not more or less racist than POC. Thats not a thing. There are shit people and you can find shit people anywhere...I have shit people right in my own home country, bigots, destroying the diversity of India by bullshit tactics...
But as it stands...because this cultural superiority of British and white people took over, the framing of beauty, of whats fashionable, of whats cool, of whats civilized is all seen through the lens of white culture...eating with hands which many cultures across the world do uncivilized unhygienic, paris fashions and made in italy...mark of excellence...made in India and China...cheap, low quality, scammers and shit people, (thats not to say shit people and scammers dont exist in India and China and there arent industries of scammers across these poorer nations but there is also denying the equisite craftasmanship across fashion and beauty in both countries-China and India.
Brown skin bad, even darker skin even bad etc etc...We wear clothes that our colonial masters did across the world, you wont find people in china wearing Chinese clothes, same for India, african countries etc...everything from clothing, to beauty, to furniture, to houses everything indigenous was changed to a foreign ideal from our rulers. The same would have happened whoever whichever ethnicity had invaded the world...like i said above..
Now and thanks for reading whoever read till here and I hope a lot of people did-on to to the show...
There is this frequent refrain and accusation of oppression olympics that I read about when it comes to this show, in general online discourse and also this insanely disgusting article fat shaming Nicola Coughlan in The Spectator.
And i really really want to open up this conversation...cuz race gets discussed a lot on this sub and other bridgerton subs and therefore a perfect place to have that conversation...Do Non-POC really believe in the concept of oppression olympics and that all kinds of biases are equally treacherous to navigate?
So I was overweight in my teens...I had a close friend who was wheelchair bound. my life was hard and I was bullied but surely surely I do not think that my plight was the same as my friend in a wheelchair...In class 10th, a close friend's father passed away, the same year my grandmother passed away, surely, surely, I dont think we are experiencing the same pain the same setback to our life...Class 10th in India is akin to A levels in Britain and SAT in the USA..
You know why I didnt think any of this and why if I had i was wrong, because there is a hierarchy to opression, .to loss, to struggles. There simply is. Opression Olympics is rooted in reality.
Pain is pain, loss and bad foundations suck ass...but privilege is a thing and some pains some loads just lighter compared to others. I could lose weight and get over the oppression I was facing because of my weight in school. My wheelchair bound friend didnt have that option..I wouldnt get my grandmother back...but my fathers loss would have a more immediate affect on my life and my friend who lost her father and her loss was just simply deeper. She needed more support, more help, more people crowding around her saying you've got this Niharika..well make sure your life doesnt change permanently cuz youlve lost your dad.
So when show fandom compare Jonathon Baileys struggle to Rege Jean George or say Victor Ali, they are simply pointing out that yes while Jonathon Bailey is gay...there is a difference between being white and gay and being black and gay or simply harder being black. And therefore there is a hierarchy. Why POC are less loath to crticize the average acting of their POC faves because they know the opportunities for them are limited. Lets do an exercise name 5 shows led by a POC in the USA or Britain or Canada-any POC..brown, black i dont care. And im not talking about black or brown actors in a show or film, im talking leads...
Also biases are self perpetuating....When black or brown led films fail, the opportunities immediately dry up because it shows that its just fairness and the numbers dont lie..Except this is not maths.....Maths would be first making equal amount of shows starring black or brown people, and then comparing...Now if the end result is white led shows do better-that would be correct math...but ratios and comparisons and statistics need to first start with an even scale...thats not even me taking about diversity...thats just math formulas...
If lets say there are 500 actors who are white in hollywood and 200 who are Black in hollywood, and lets say all 200 black actors are shit...would you say the statement...god white actors are so much better than black actors...no cuz the maths is not adding up...you compared 500 actors who were white of which 300 were excellent 200 bad and you made that into the conclusion that white actors are better because you were comparing only with 200 black actors to begin with...the actual math formula yieled equal number of bad and good actors..
Why people defend Kanthony harder...or wanted Simone Ashley to be promoted as much as Polin is because (lets go with my Math analogy again) all things being the same) unless Nicola and Luke are really bad actors compared to Simone Ashley, theyll still have it easier in acting...they simply will. they wont have to change their confusingly, long foreign sounding name, they wont have to work at assimilation in other ways, lets say they were muslim they wouldnt have been trying hard to sell themselves as Im just as liberal as you, im not a threat. And I love Luke Newton and Nicola Coughland-both seem like throughly, likable, personable, kind hearted beans..
Now my own experience. I have stated in an earlier post on this sub that I'm a Shonda Rhimes fan...because I have personally benefitted from the diversity she has included so naturally, so elegantly in all her shows. My own ideas of beauty, have been tested and transformed. In fact I know exactly the moment it happened...watching Christina Yang as a 14 year old...and thinking god meredith is so beautiful and I want to see more of HER and Izzie but then seeing christina again and again and again over each episode over hundreds of hours of binging, school, college, masters, big move outside India, my own constant this show..my brain was soft mushy and impressionable and christina yang, korean Sandra Oh became suddenly but actually slowly and then all at once became beautiful to me...I dont know when it happened but like the book Colin telling Penelope I dont know when or how and why others dont see it but you ARE beautiful in the book carriage scene. I found her hot, I found her cool. I cared to learn more about her Korean mother and her Jewish father and it didnt matter that the show never covered that culture..Christina was atheist and could handle her shit..even around racists.. But I still wanted to learn more about HER..a woman I simply didnt think was beautiful comparable to meredith and Izzie..me an impressionable 14 year old..just made that turn because of a show.,..a fluffy...not that deep soapy as hell show.
But it was only possible cuz I saw 24 episodes day in day out,...over many many years....for that to happen. I had many more years of falling asleep to dawsons creek joey and dawson, joey and pacey, gilmore girls rory and jess rory and dean rory and logan..i imagined and dreamt of windswept Mr. Darcy...and of course I luckily had my own countrys pop culture cuz I grew up and lived in a country where I was repped plenty eveywhere... So i found bollwood heroes hot and I found White americans or british people hot...my brain simply didnt have a framework for East Asians hot. And I needed to seem them constantly and frequentlyn and in Hot front and center, desirable covetable-their culture, their families all respected, admired again and again and again over many years for that switch to happen.
So why do we fight for our POV faves.. fight hard (some fight really ugly too which....they are not my people ( as in I dont know them) so sorry for that)....because we know how much more repping they need...we know how much MORE MORE MORE important it is to see POC culture done right...because it simply is not accessible,...cannot be to people outside..
K POP is making waves super..., people love themselves some MANGA and kimchi...so good and progress...but a lot of countries pop culture is in the native tongue...people outside of it cannot access it...in the same way one would English language content-books, podcasts, news, films, shows etc etc. And hollywood does our culture wrong, played up for laughs, stinky curry, stinky indians, scamming Indians, uncivilized heathens, oh so funny that Sofia Vergara and her funny accent (The Ellen Show), niche shows that dont become popular behemoths because it stars all ethnic casts-Fresh Off the Boat.
You simply will not understand how brilliant and gorgeous my country's embroideries, temple art, clothing and fashion, actors and sculptors, museums and writing and authors are...not because YOU are racist..but because you dont speak-my language and my culture isnt dominant or wide spread enough-insert again-my above explanation of colonialism and dominant and suppressed cultures. History made one culture the most widespread...again not because white people, bad and racist...brown and black people good and not racist and benevolent..but they simply were the victors...for centuries...plural.
We want to fight harder for Rege and defend him leaving the show (im not even black but when you live outside of your home country, all POC seem like a united underrepresented group and you find kinship everywhere) because any potential cancellation or quote unquote unlikeability and hes difficult accusations would hurt him far far more than Nicola Coughlan, Luke Thompson, Newton, Phoebe etc. for the same crimes. And there just arent enough of us to begin with to lose even one. For what is quite honestly a mid Netflix show with seeds of promise but a lack of ambition.
submitted by Potential-Lack-5185 to BridgertonNetflix [link] [comments]


2024.06.01 14:29 gozillastail A CALL TO ALL THE O.G.'s O.P's STILL UP IN THIS BI~ *achem* house... yeah - house!

TLDR = Too Long Don't Read It
k so I've been active here since Grush-gate 2023 when people started taking a REAL HARD LOOK at previous UAP footage, evidence.
The NASA scientist panel had been on the previous week. They were trying to end ridicule of any research in the field of UAPs. It was also a sham-filled nothing burger.
THE ONLY REASON WE ENDED UP HERE IS CAUSE WE GOT KICKED OUTTA UFOs ! by the establishment. the regency. the "mods..."
the collective, exhaustive, and morally mandatory reconsideration + reassessment of any and all multimedia, that by simply existing, could induce in the mind of the consumer....questions.
Like questions related to the possibility of the existence of
  1. UFO / UAP
  2. biologics and / or NHI
  3. immaculately efficient technology capable of generating INFINITE ENERGY
  4. GOD
Man Wearing Uniform: "Yes - I can acknowledge that the video exists, but I can't comment on it. "
But then, that day, (remember!) on live TV - Three American heros, under oath, looking rather dapper, (not in uniform)
effectively told a panel of people representing their constitutes - the American people -
"you're gonna have to watch all of them - all over again"
decorated heroes. telling us that we had to do it. we were gonna have to go back and watch every single UFO video ever, every alien autopsy film, every russian UFO crash photo.
GruschGate got people talking about these three orbs... again.
The conversation about whether or not these specific videos were "real-or-not" was officially back on the table, and we're still having it right here, right now.
but we were having it before too. remember when....
*~~WAYNE + GARTH DREAM FADE~~*
at the time, the very discourse that this NEW subreddit is now dedicated (relegated?) to, that conversation was entirely too hot for the UFOs sub to handle. and there are... reasons.... we were...
removed....
"You see, Mr.......... Anderssson...."
*Neo looks guiltily away from dossier*
Agent closes dossier with a *!SLAM!*
"You see...Mr. - Anderson -"
AirlinerAbduction2014 u/NewFollwer : "What TF is even OP's point? This is already too long and cringeworthy. To heck with this! I'm heading over to highstramgemess!"
Hey, new guy, stick around for a bit longer. I'm almost done. lol.
The point that I want to make is this -
The points - the "exhbits" - the leveraged "proof" - the very same anomalies pointed out by OP, that CROSS RTF OVER THE UNCANNY VALLEY, OVER AND OVER AGAIN, for generations, (literal GENERATIONS of posters - cycle is about 4 months. One of you OG homies back me up here)
We keep coming back to the very same points, over and over again. The way that the plane it's straightened out and accelerated does it for me. But there are a lot of thing that look really, really, real.
Check out how to check it out in 3D if you haven't yet. It will change you perception of the event.
literally.
tiny rant coming up it's juicy - 12/10 O.G O.P.s would agree.
*arms straight out* *fingers laced* *turns palms out - cracks knuckles*
That flying were-rat from India was a fraud. PERIOD.
AirlinerAbduction2014 u/NewFollower: " hey mom what an Indian flying were-rat?" u/NewFollower's Mom: "Honey I thought I told you to go bed. Now get back upstairs read your Foundation Trilogy."
If you know about the rat, I'm sorry you had to go through that.
And if you don't, but wanna, well... you're gonna have to scroll down to the beginning.
Well... more like the middle of the sub's entire feed. Also sorry you're gonna have to go through that.
Indian flying rat boy did good work muddying the waters for a while. that "orb moves the contrail" hype is the trademarked style. rather lazy IMHO..
"Orb Punches Hole Through Cloud" or whatever TF it was called. looked GREAT! But it wasn't real...
Hoaxes look like hoaxes.
The difference here in AirlinerAbduction2014 is that WE ALL HAVE UNRESTRICTED ACCESS to the best possible version of the footage, so we can easily debunk a contrail or a cloud hole.
Okay gang, - we've arrived. Grand Finale -
THIS generation of posters! They carry a sharp sword! It cuts clean! And deep! They read everything - but don't believe everything they read! It's either a very smart or a very dumb tactic.
A message to this generation ~
Stand up for what you believe in Speak your mind but most importantly speak your HEART.
Are the videos real? Did this actually happen?
"you're gonna have to watch all of them - all over again"
new guy here - yeah you - with the shirt and pants on - What does your HEART tell you when you're watching?
Don't they look so real?
Maybe they are.
"you're gonna have to watch all of them - all over again"
"o~oooooh ~ baRa....bara-ko~odA"
"you're going to have to read it all of it all over again"
"he's a Ma~gic man"
*CREDITS FINISH ROLLING* *MUSIC CONTINUES*
Good thing your stayed in your seat.
I think the indian flying were-rat is feeding this trash to 4 orbs, and he's just eating it in front of us like David Hasselhoff lying on his side, shirtless, mouthing a quickly disintegrating Wendy's double-bacon cheeseburger over paper plate on his living room floor. Don't Watch The Video.
This new generation needs to be the The Hoff's daughter , recording the video of her father, scolding him and shaming him for having let himself get this out of control.
So keep up the good work, kids. No gods, no masters, no managers. Only men.
Keep everyone accountable., all the time. or else all this sub will amount to is nothing more than an empty box filled with useless brown paper wrappers.
* CAMERA CUTS TO * The normally dark shadows of a poorly lit parking garage glow grey from the haze of cigarette smoke. OP takes a long drag off a short cigarette
*turns head to camera* *makes direct eye contact with................................................................................................................................................... YOU! *lots of eye contact with you* *even more eye contact with you*
AirlinerAbduction2014 u/Newfollower : *wow that's a lot of eye contact* Hey how did you get into the parking garage? and where is your mom?
*OP turns around, can see only this back* *shuffles slowly and silently into the shadows*
*cue X-files opening theme song*
aaaaaaand SCENE!
THE TRUTH IS OUT THERE
submitted by gozillastail to AirlinerAbduction2014 [link] [comments]


2024.06.01 14:28 No-Marionberry-6769 GoPro HERO12 Black Waterproof Action Camera with 5.3K60 Ultra HD Video

GoPro HERO12 Black Waterproof Action Camera with 5.3K60 Ultra HD Video
Capture Every Adventure with the GoPro HERO12 Black - Waterproof Action Camera with 5.3K60 Ultra HD Video
Description:
Unleash your inner adventurer with the GoPro HERO12 Black, the ultimate waterproof action camera designed to capture your most thrilling moments in stunning 5.3K60 Ultra HD video. Whether you're diving into the deep blue, scaling rugged mountains, or cycling through scenic routes, the GoPro HERO12 Black ensures you never miss a detail. Elevate your content creation with unparalleled clarity, durability, and advanced features.
https://preview.redd.it/upmewgrney3d1.jpg?width=1222&format=pjpg&auto=webp&s=0a400a2124d0493ff90c3522780f3d4aa25657f2
Why Choose the GoPro HERO12 Black?
  • 5.3K60 Ultra HD Video: Capture life-like videos with incredible detail and fluid motion, perfect for both professional and personal use.
  • Waterproof Design: Take your HERO12 Black up to 33 feet (10 meters) underwater without a housing, making it ideal for all water-based activities.
  • HyperSmooth 4.0 Stabilization: Enjoy ultra-smooth footage even in the most intense action scenes with the advanced image stabilization technology.
  • Front and Rear LCD Screens: Frame your shots perfectly with the dual screens, allowing for easy selfie videos and vlogs.
  • Robust and Durable: Built to withstand harsh environments, the HERO12 Black is rugged and resilient, perfect for any adventure.
Key Features:
  • TimeWarp 3.0: Create mesmerizing time-lapse videos with TimeWarp 3.0, which adjusts speed based on motion, scene detection, and lighting.
  • Live Streaming in 1080p: Share your adventures in real-time with 1080p live streaming, ensuring your followers don’t miss a moment.
  • SuperPhoto + HDR: Capture stunning photos with enhanced dynamic range, making every shot vivid and crisp, even in challenging lighting conditions.
  • Voice Control: Enjoy hands-free operation with voice commands, perfect for when you’re in the middle of the action.
  • Long Battery Life: Equipped with a high-capacity battery, the HERO12 Black allows you to capture longer and more intense activities without interruption.
Customer Reviews:
⭐️⭐️⭐️⭐️⭐️ "The GoPro HERO12 Black is a game-changer. The video quality is unmatched, and the stabilization feature makes every shot look professional. It's a must-have for any adventure enthusiast!" - Amanda S.
⭐️⭐️⭐️⭐️⭐️ "I've taken my HERO12 Black snorkeling, hiking, and biking, and it performs flawlessly every time. The waterproof feature is fantastic, and the video quality is superb. Highly recommend!" - Jason K.
Capture Your Adventures with GoPro HERO12 Black!
Ready to take your content creation to the next level? The GoPro HERO12 Black is your perfect companion for capturing stunning videos and photos, no matter where your adventures take you. Click here [insert link] to purchase your GoPro HERO12 Black today and start creating memories in breathtaking 5.3K60 Ultra HD!

GoProHERO12Black #ActionCamera #WaterproofCamera #UltraHDVideo #AdventureReady #HyperSmoothStabilization #TimeWarp3 #LiveStreaming #TravelGear #OutdoorPhotography

Elevate your adventure and content creation with the GoPro HERO12 Black. Click here https://youtu.be/y5xOe_MafCs to learn more and buy yours today!
submitted by No-Marionberry-6769 to BestToBuyUSA [link] [comments]


2024.06.01 14:27 bibmtomo Colors look off / Slight blue tint

I'm a beginner to 3D, and this is also my first time posting on Reddit, so hello everybody!
I'm working on a CCG to play with friends. Nothing official, just a casual idea I've been trying to bring to life with Tabletop Sim. That creature's called an "Oob" by the way - no relation.
The image dead center is a viewport render of the thing on the left, zoomed in dramatically. It's zoomed in to highlight the slight color inaccuracy of the thing to its immediate right - which is the original file on paint.net. The original image is warmer, while the Blender render is cooler (more red, vs more blue), if it's hard to tell. Obviously, I don't want that - I want them to be the same!
So here were my attempts at solutions: The part underneath it is the same file viewed through my viewer of choice, Honeyview. It's the same as paint.net. The Blender render, however, is not. So now I know I didn't accidentally render the image wrong. At the bottom is the Color Management section. I've looked at countless tutorials and this has always been the culprit. And while it does look way closer, it's still not completely there. The same has been looked through in the Shader tab, at the bottom left with all the nodes. Not actually sure what that area's called to be honest. The "Color Space" at the image node is correct, all of the input value sliders at the Principled BSDF node has been tested and deactivated (Emission Strength, Specular...] Even saving the image onto my desktop makes it look just like it does in the software.
So. I've tried a lot.
To be clear, I do want this to be rendered through the viewport, unless doing it through Cycles or Eevee somehow fixes this problem. I want the colors to be accurate to the image, no crazy lighting or anything. I understand the difference is ... very subtle, not too many would probably even notice, which might explain why no one seems to be asking about this. But either way, it's been bugging me for hours and if not a solution, I at least want a reason why this might be happening. And if there is no solution ... can I maybe fake it?
Thanks for everyone's time, in advance.
https://preview.redd.it/ymwcbc24fy3d1.png?width=1920&format=png&auto=webp&s=46671e5e16bd6e7719c006141bc89ae4210645fe
submitted by bibmtomo to blenderhelp [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:25 ziyal79 Safety

My life has been hard lately. In summary, I've lost two jobs in the 3 months. The first one because of my PTSD (I was working in legal services with survivors and perpetrators and it was triggering me) and the second one because I didn't have the skills my boss wanted. Because of this, I've had to declare bankruptcy. I've been leaning hard on my ED to cope.
I've been spending my time carefully curating my caloric intake and spending an hour and a half to two hours each day at the gym doing a mixture of weight training and cardio. While this isn't actively disordered because I'm sticking to limits set by my dietitian and personal trainer, it feels like I'm walking on a tightrope. There's a part of me that doesn't want to get another job because then I'll have the time to focus on my food and exercise without distraction.
My ED is making me feel safe when everything else is so up in the air. I can't really tell if this is just par for the course or is something to be worried about.
Does anyone have any thoughts or advice?
submitted by ziyal79 to EDAnonymous [link] [comments]


2024.06.01 14:24 EvilZero86 Super Manifestation 3: Superman of God

Walking in the glow of the consciousness, the everlasting, the one who is forever, resting in the eternal slumber of the infinite. This power surges through you as you reach that state of the present bliss, the present moment, the present peace. The peace that is forever in this calm state of the heart while in the face of all your troubles, all your doubts, all your fears transforming, integrating, transmuting into something greater than before. As you walk illuminating the darkness, bending reality, and altering time and space. You are the god self, the super self, the ultra-instinct of God in man.
As you reach this state of the super consciousness in this fast the being is magnified and the powers are activated. Powers transcending time and space. Powers bending reality to the mind. Powers effecting everything and everyone that surrounds the consciousness, the everlasting of the being achieving this state. All desires fade away as the power inside of the man surges to new and profound levels. Now, this energy is free and unconditional. Representing the unconditional love of God. The love of God where all things are possible. Infinite possibilities expanding in the consciousness of man as he enters the realm of forever while in this fast.
Now, he attains the greatest power and everything he chooses to create comes from unconditional love, free energy, states without conditions. He is detached, free, and liberated from the needs of this world. All his needs are met as the love of the spirit is scintillating, sparkling, and shining from his soul. He is a man walking without doubts, fears, resistances and weaknesses of any kind while in this fast. The power of the unified field is surging through him and transforming his mind, his body, his heart. He can no longer be the old version of himself, he can no longer walk the same, he can no longer speak in the same manner. His world is altered and his mind opened to ideas, insights, and dreams of the infinite.
As the power within him continues to surge while in this fast and his desires continue dissolving he surrenders to the perfect light within as his body's vibration manifests everything relevant to his life. Everything that his perfect light calls into existence. Unsullied by negative beliefs, unchained from the trauma of his past and unrequited by the spirit of damnation. This man is so in tuned to the light within. He trust all that is manifested by the spirit within. He need not ask for anything. He need not go anywhere. He need not to become anyone. For he is the one from which all things flow. His perfect, super, blissful divine nature that he has become. The Superman of God.
While in this fast the super self attains powers and abilities unbeknownst to the people and the world around him. His intelligence is magnified as his mind and brain assumes the brightness of consciousness. Glowing and sparkling from his mind, his thoughts, his ideas as they take on a new and higher quality exhibiting the mind of God. Telepathy, prophecy, and imagination swirling in his mind and brain intertwining with the dreams of reality. His ability to sense the thoughts of others and predict behavior and circumstances as his dreams of reality become more synchronized with his mind. The power of the mind of man expands beyond time and space into the reaches of the infinite present moment where all things are here and now.
He is becoming the god of reality, the arbiter of worlds, the super self that bends time and space by his will alone while in this fast. Reach this state of the super consciousness of super manifestation of super realization and the mountain does not need to move. The mountain was never there. The mountain fades away like all dreams that are not supported by the super self. Fading away like the dream it was in the dreams of illusions.
While in this fast as you become the enlightened one, all demons, monsters, darkness, enemies, and warlocks of many different kinds in the shadow dimensions tread carefully around the being who is carrying the light of the holy one. They know who you are. They know what you are. God walking in man. Light effecting the state of the darkness. And unaffected by manipulation, unfazed by their attempts of fear, and unmoved by their promises of riches. You are steady in body. You are convicted in mind. Absolute in peace. You are the one calming the still waters of the storm. You are the blessed.
Seeing the future and the past all in the present moment as he becomes something greater than before. The prophecy of the future and the events of the past all present in his conscious awareness. Making changes to thoughts, ideas, and events as the man becomes God in the flesh transcending time and space as his new vibration transforms and changes reality around him. As he becomes the beacon of transformation of darkness into light, matter into energy, weakness into strength. From nothing to everything.
Anything he dares to create comes from the unconditional love from within him as a dream of excitement, a fantastic idea, a playful project while disassociated from expectations and needs of any kind. It is born from no expectations.
While in this fast he walks with a light body, an expanded mind, a golden heart, a perfect light that is affecting everyone and everything around him in the space of reality his presence commands. And those that need to be healed are brought before him to touch the garments of his vibration as he heals, repairs, and regenerates the lost souls in the dream. By connecting to the god within them to connect to the god within him. Creating a synchronization and a pairing of the god force that no darkness can stop. Healing by his presence alone. His vibration, consciousness, spirit opening the hearts and raising the minds of people in his world. Quickening their vibration, discovering themselves, and facing their fears as they overcome the shadows of themselves and then their vibration effecting the people in their lives, and them in theirs, and theirs in theirs and so on and so on, throughout time and space. The notion of be the change you want to see in the world is more tangible than ever.
And the souls of the lost are liberated from the consciousness of darkness to the realms of light. While in this fast you have become the destroyer and liberator, the alpha and omega, the one who will liberate mankind and the judgment of the oppressors by the power emanating and vibrating from within you. You, the power of God, the super self. That Superman of God.
While in this fast his mind is cleared and his body is enlightened by the spark of divinity as his dreams become prophetic entering a world beyond time and space. His consciousness communicating with the super consciousness of multidimensional realms as he access the unconscious parts of himself. Becoming conscious of the unconscious, aware of the unexplored, and knowing of the unknown as he taps into the divine nature within. His dreams, experiences, lives in the other dimensional realms linking, connecting, synchronizing as he downloads new profound information about himself and his dream reality.
Growing his intelligence, his knowledge becoming limitless as he downloads new, higher and greater information than before. Changing his perception of the world and living with a new sense of purpose, a new sense of reality, a sense of being greater than ever. He is the mind of God expanding in the dream. Expanding into the greater self, his greatest self, his most amazing self, magnificent self. His mind expanded and intelligence magnified. He is becoming unlimited. By the unlimited One.
And there he feels his divine nature. His eternal nature. In the foreverness. Communing and basking in the glow of the light. The glow of All That Is. He knows who he is. He knows what he is.
While in this fast you are the super self, you are the being of light, you are the one commanding the dreams within the dream. While in this fast, dare to reach the super consciousness. Dare to become unlimited. Dare to be the Superman of God. You are The One.

submitted by EvilZero86 to DryFastingSuper [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]


http://activeproperty.pl/