Vocabulary workshop level e answers review 7-9

r/OverwatchUniversity: Discussion, Help and Guides

2016.05.10 17:11 r/OverwatchUniversity: Discussion, Help and Guides

/OverwatchUniversity is a subreddit for learning about the game Overwatch. Featuring VOD reviews, guides, answers for all your questions, and more!
[link]


2011.08.28 00:51 xtc46 A subreddit for general treadmill enthusiasm

A subreddit for general weight training discussion, focused on intermediate level and above in experience and strength, for those ranging from strength sport competitors, sports that benefit from weight training, or weight training enthusiasts. Or for people to tell WeaponizedSleep to eat more.
[link]


2019.06.05 16:52 b2trainer RunningShoeGeeks

A place for runners to share running shoe related news, releases, reviews, and deals. Please use our sister sub AskRunningShoeGeeks for all personal questions or recommendation requests. This sub is NOT affiliated with any other RunningShoeGeeks on other social media platforms.
[link]


2024.06.01 14:52 glassfeathers Anyone feel like critiquing my Resume?

I have been applying to consultant roles like crazy and I'm not making any headway. Can anyone think of ways I can improve what I have below or what other career avenues I should pursue?
EXPERIENCE
Homecare Homebase, LLC, Dallas, TX Implementation Training Consultant, Jan 2022 - Present
Provide quality implementations and ensure the adoption of products within health agencies across the country,
Guide customers and internal training teams through the deployment of the software for multi-site locations across the United States, Lead clients through training of the software and support clients throughout onsite and remote deployment,
Assist in making customizations to clinical content (i.e., visit types, pathways, and assessments) to ensure the environment is ready for testing and training,
Collaborate with internal staff on training preparations for assigned projects, including completing preparation of training database prior to customer deployment,
Communicate effectively and understand the customer's needs, goals, and strategies, as well as communicate those needs to the internal HCHB project team for action and/or resolution,
Independently researching customer inquiries and determining sources of issues. Independently researching data functionality and reporting problems to the customer support team with needed steps for customer resolution,
Maintaining product knowledge as new enhancements and functionality are released in the application,
UNIVERSITY OF NORTH TEXAS, DIVISION OF ADVANCEMENT, Denton, Texas Student Assistant, May 2019 - Aug 2020
Operate office equipment such as fax machines, copiers, and phone systems, and use computers for spreadsheets, word processing, database management, and other applications,
Answer telephones and give information to callers, take messages, or transfer calls to appropriate individuals,
Set up and maintain paper and electronic filing systems for records, correspondence, and other material,
Maintained scheduling and event calendars, Operate electronic mail systems and coordinate the flow of information, internally or with other organizations,
CORELOGIC, Irving, TX Operations Specialist, Jul 2014 - Jul 2018
Conducts research of data, perform factual analyses of loan histories to assess appropriate resolution and compile all corresponding supporting documentation for review,
Leverage all available resources such as existing databases, third-party sources, and/or public information on the internet,
Utilize tools to analyze, query, and manipulate data according to defined business procedures,
Extract and enter appropriate data onto application, other form, or database, Process payments that may require preparing, balancing, and submitting complex wire disbursements for mass manual payments,
Proofread documents for grammatical, mathematical, typographical, and composition errors adhering to standards and guidelines, Perform root cause analyses of all discovered errors in order to identify areas requiring development or enhancement of training, policy, or procedures,
Adhere to all required company and client driven Service Level Agreements, Perform duties such as maintaining all levels of files, searching and investigating information contained in files, processing departmental documents requiring more specific knowledge of functional operations, and entering report results into tracking systems,
Track progress and provide status report to management on achievement of daily and weekly team goals,
Act as Subject Matter Expert on internal and client projects, making recommendations to these processes,
Able to develop and maintain business relationships with individuals representing other departments and/or representing outside organizations,
Maintain detailed and comprehensive records for all complaints, including error findings, during the complaint investigation process and document corrective actions taken,
EDUCATION
University of North Texas Denton, TX
Bachelor of Arts (B.A.) History (Apr 2021) GPA: 3.2
University of North Texas Denton, TX
Bachelor of Arts (B.A.) Digital and Print Journalism (Apr 2021) GPA: 3.2
Relevant Coursework: Strategic Social Media, Principles of Public Relations, Applied Design for Advertising and Public Relations,
ADDITIONAL SKILLS Microsoft Office MSP Fiserve Black Knight HTML Search Engine Optimization Adobe Suite Oracle ERP BlackLine
submitted by glassfeathers to careerguidance [link] [comments]


2024.06.01 14:49 cheesehour G14 4080 vs 4090. I have both for 4 days

I need to pick one by Tuesday, but if anyone has a question comparing the two I can try to answer. I bought the 4090 for the 16GB vram for video game development, but Best Buy incorrectly had the 4090 listed with the IPS display (which I was excited for).
The 4080 has 16GB ram, IPS display 165 Hz 500 nits, and the animatrix back
The 4090 has 32GB ram and miniled display 165 Hz 600 nits
I play games, and the 4080 kills it. I can play Helldivers 2 at 4k with 80% of graphics options set to max and usually get 50 - 60 fps. Some dips to the 40s, but very rare, and usually due to environments, so during fights it's fine. I usually play on difficult 7 or 8, getting 400 - 500 kills a match now.
I bought both open box, although I swear the 4080 was 100% new - everything was sealed.
Battery
The main thing I want is a long battery life in linux. If anyone has a battery life test, lmk. Using GHelper Silent + Eco + 60 Hz + 10% brightness + windows battery saver on both (multi zone off on the 4090), the 4080 discharge seems to be around 6.2 watts with a low of 5.2, while the 4090 discharge is more like 6.8 with a low of 6.2. I might notice this, since most of what I do is edit text. I'm surprised the difference is so high. If you average 9 - 10 watts battery use, it seems like the 4090 is using 0.5 - 1 watt more power -> 6 to 11% more power use -> assuming 8 hours of battery, you get 29 to 48 minutes less battery.
OH! But the 4090 has a 2nd stick of RAM. I'll try another stick in the 4080 and see what happens, but for now I'll assume the miniLED eats less than 25 minutes of battery. Which is "fine", since I usually have a laptop-capable battery bank on me anyways.
I just enabled multi zone, and the discharge of the 4090 has been hovering at 6.2 - 6.5 watts (I'm not using it - just firefox, GHelper, and a settings menu are open). So disabling multi zone seems to have no effect. I'm typing this on the 4080, same things open, and the 4080 is at 6.1 watts.
After finishing writing this review: I've been writing this review and browsing the net a bit on the 4080, and I've only used the 4090 to toggle multizone and move the mouse some, and they are draining at the exact same rate - both are down exactly 20%. So fwiw, the 4080 under light use matches the 4090 at nearly full idle (screen on)
Display
The displays look very similar, honestly. I program in a font size too small for many people to read. I have great vision, and I don't like bright lights, so I thought I'd hate the miniLED blooming. The IPS display has better color accuracy, which is something I notice since I tend to run a solid grey desktop. A solid grey on the miniLED looks liked you washed it with your reds - there's just like other colors mixed in to it (multi zone is disabled atm)
display test: https://www.eizo.be/monitor-test/
I haven't tried games yet, but I might return the miniLED simply on color accuracy. I've been doing more design-heavy web development, and matching colors is a pain, I don't need another variable in that equation. This is weird - on the display test for the full black screen, the mouse cursor becomes a shade of gray.
So - the miniLED does much much closer to black - but it's not able to compensate and make the white mouse cursor white. Very interesting - and kind of amusingly bad. So, you get "blacker blacks" by sacrificing your "whiter whites"? You're not achieving a higher contrast ratio, you're just inverting the problem. Shame I'm not a youtuber so I can't break this news with a spicy title.
When miniLED multi zone is off, the mouse cursor displays fine (white is white, instead of grey). However, greys look much better when multi zone is on.
The miniLED gets a bit brighter, of course, and the colors pop a bit more. The miniLED gets a little dark towards the edges (not evenly lit); the IPS is very evenly lit. I've seen people complain about backlight bleed here, but my panel is near perfect.
The miniLED is less comfortable to look at. Like I said, I don't like bright lights, but even on low brightness the miniLED is less comfortable than the IPS. Maybe this is related to blooming - but tbh, I don't see much blooming - I feel like it's something to do with how the light is emitted. (Or maybe I'm tired and overthinking it.)
I think for pretty games or movies, many people might prefer the miniLED. But for everything else, the IPS is far superior. It's so funny to me now that everyone is complaining about not getting miniLED, when imo it's a bit of a failure that they passed off at a high price. Maybe later generations will be better.
What type of display is this miniLED? Is it also IPS?
I'm leaning heavily towards the 4080 for color accuracy... but I really wanted 16gb vram and 5 more fps in helldivers :( I'm joking about helldivers - I wanted vram for unreal engine, but I don't think I can work with these colors
Apologies for typos. I rewrote parts of this as I went, and I don't feel like spell-checking. And thanks u/ModrnJosh for all the research you've done and shared here.
submitted by cheesehour to ZephyrusG14 [link] [comments]


2024.06.01 14:45 KpopRates The "2021 in K-Pop" Rate, Day 1: Happy Robbed Day! Happy Happy Worst Day!

Welcome, everyone, to Day 1 of the 2021 in K-Pop rate! We are traveling back in time to a monumental year, both for K-Pop and for the entire world. We will be revealing the bottom 40 songs today.
Day 1 will begin at 9 AM Pacific, about ~3 hours from when this post goes up. For those following the song rate live during this time, we highly encourage you to follow both this post and the live chat on our community Discord: https://discord.gg/FquKMgz9EU, as we will be using both for chatting/communication.
If you are here after the live results-reveal watch session, we would encourage you to avoid spoilers by going through the comments section one-by-one, as the comments will be sorted by Old after the live watch session so you can simulate the ranking reveal for yourself.

STATS

Participants: 64 participants
Average score: 7.013
Average controversy score: 2.090 (Any song with a controversy score higher than this is considered to be divisive)

SONG LIST:

.

January:

(G)I-DLE - Hwaa
Epik High - Rosario
Cherry Bullet - Love So Sweet
Dreamcatcher - Odd Eye
IU - Celebrity

February:

SHINee - Don't Call Me
Sunmi - Tail
ONF - Beautiful Beautiful

March:

Rosé - On The Ground
Pentagon - Do or Not
WOODZ - Feel Like
Weeekly - After School
IU - Lilac
Baekhyun - Bambi
WJSN - Unnatural

April:

Hoshi - Spider
STAYC - ASAP
SHINee - Atlantis
Enhypen - Drunk-Dazed
ITZY - In The Morning

May:

NCT Dream - Hot Sauce
Oh My Girl - Dun Dun Dance
WJSN The Black - Easy
Yuqi - Bonnie & Clyde
aespa - Next Level
fromis_9 - We Go
Taemin - Advice
Enhypen - Fever
BTS - Butter
Everglow - First
TXT - Lovesong

June:

Monsta X - Gambler
Lightsum - Vanilla
ONEWE - Rain To Be
LOONA - PTT (Paint The Town)
NCT Dream - Hello Future

July:

Taeyeon - Weekend
AKMU (with IU) - Nakka
Dreamcatcher - BEcause

August:

Jeon Somi - Dumb Dumb
TXT - Loser=Lover
Brave Girls - After We Ride
Stray Kids - Thunderous

September:

STAYC - Stereotype
Purple Kiss - Zombie
NCT 127 - Sticker
Lisa - Money
ITZY - Loco
KEY - Bad Love

October:

Twice - The Feels
aespa - Savage
Jo Yuri - Glassy
TRI.BE - Would You Run
Seventeen - Rock With You

November:

The Boyz - Maverick
Billlie - Ring X Ring
Chungha - Killing Me

December:

IVE - Eleven
Xdinary Heroes - Happy Death Day
ATEEZ - The Real
.

Bonus Rate:

Treasure - Beautiful
The Boyz - Kingdom Come
Joy - Hello
BDC - Moonlight
Golden Child - Ddara
Weki Meki - Siesta
Everglow - Pirate
.
submitted by KpopRates to kpoprates [link] [comments]


2024.06.01 14:45 _kashipwreck_ Delulu haul 🤑💕

Delulu haul 🤑💕
Went a little overboard with the delulu coupon 🫣
Pictures in order: 1) haul 2) TF damn girl mascara 3)TF Liquid Lipstick (Large & in Charge) 4) Becca highlighter in champagne pop 5) smashbox cheek tint in wisteria 6) large and in charge transfer after 5-10 mins of application 7) top to bottom: SF fluffmate (girl crush), TF large and in charge, smashbox blush in wisteria - swatches near a window 8) same swatches under white light 9) Sunnies Face fluffmate in girl crush
What I got & first impressions:
💕 Too Faced Damn Girl Mascara: If you’ve seen any review videos, you know that the brush is EXTREMELY thick, and so is the formula. The brush picks up a LOT of product so you do need to wipe it off before you apply otherwise you’ll be left with clumpy eyelashes. HOWEVER, the effects are gorgeous - I applied it on my bare lashes without curling them and OMG. I love it. Volumises a lot, lengths a fair amount. Doesn’t make my eyes spidery, doesn’t feel heavy or cakey and didn’t make my eyes burn. 9/10.
💕 Too Faced Lip Injection Liquid Lipstick in shade Large & In Charge: Was a little hesitant while ordering because I didn’t find a lot of swatches or reviews for this lipshade and the ones I did find were of people with much lighter complexion than me so it was a gamble - but, thankfully I lucked out. The shade is described as a burnt sienna on the TF website and I mostly agree with the description. It’s a brick red shade with pinkish undertones and really suited me. However on the Kult app it looks like a brownish orange which is not accurate. Unfortunately, the lipstick transfers a LOT in the first couple of hours. I had a simple homecooked lunch, and afterwards I noticed that I was left with a butt lip because the lipstick had faded completely from the inner centre of my lips - however, I just pressed my lips together and rubbed them together a couple of times and it was back to looking fine. It is a complete matte formula and does dry out your lips a little bit, but nothing extreme. I have naturally fuller lips so I can’t comment on whether it plumped my lips or not. The tingling upon application was bearable and subsided in 5-10 mins. Will rate it a 7.5/8 on 10.
💕 Too Faced 12hr Intense Black Killer Kajal: Love the intensity of the colour payoff. It is definitely intense and jet black. Didn’t tug or skip on my waterline. Didn’t fade or transfer through the day either. 10/10, no notes.
💕 Smashbox Becca Highlighter in Champagne Pop: I have normal-dry skin and do have a lot of tiny bumps/texture on my skin so I usually stay away from powder formulas in any kind of makeup product because they place emphasis on the texture. I bought this out of pure FOMO and even though it’s a beautiful shade, I don’t see myself reaching out for it a lot because on me, it definitely looks slightly chunky and emphasis my bumpy skin quite a bit. Thank god I got the mini size. 7/10.
💕 Smashbox Sheer to Stay Halo Lip & Cheek Tint in the shade Wisteria: Described as a cool mauve on the website - and I mostly agree with the shade description. It’s a very sheer and buildable formula and I’m so happy with this purchase because it looks super beautiful on my skin. I don’t gravitate towards cool tones in any of my makeup because I have medium skin with warmer undertones but I still ended up loving this. 9/10.
💕 Sunnies Face Flulffmate in Girl Crush: Described as a terracotta rose and that’s not how it looks on me 😂 it looks like a peach-ish bright pink on me but I still somehow like it quite a lot. Feels very comfortable and creamy on the lips and transfers MUCH less than the TF Liquid Lipstick despite being creamy while that one is matte. Again, love the product - 8.5/10.
💕 Caudalie Vinoperfect Glycolic Peel: Haven’t used it yet, will post a mini update in the comments when I do. 🫢
I’ve also bought the TF coco Bold ‘em lipstick in chocolate chip but haven’t received it yet.
Freebies I got: Suva liner brush, Suva dual brush, Monika blunder tulip blending brush, derma-e essentials overnight peel, simply nam eyeshadow pot in classic gold.
submitted by _kashipwreck_ to KultCult [link] [comments]


2024.06.01 14:38 Crimson_SS9321 Bhagwa Atheism

What is Bhagwa Atheism ?

A hypocritical and privileged form of atheism that is critical against any religion (particularly Islam), but harbours sympathy for his religion in which they were born i.e. Hinduism.

Why is this sympathy?

The answer is simple ...casteism, we shall discuss this later on how this is deeply rooted in caste based privileges that facilitates such thinking. To understand this let me explain from my point of view:
According Marxism, in a feudalist/semi-feudalist/capitalist society there are two types of classes mostly, namely: the Bourgeois (the ruling class who controls the means of production and generates profit from the exploitation of working classes labour power) and The Workers (or Proletariats) (who do not own any means of production and has no power to purchase labour power of others, and they survive solely by selling their own labour power).
These classes emerge only at a certain stage in the development of the productive forces and the social division of labour, when there exists a social surplus of production, which makes it possible for one class to benefit by the expropriation of another. The conflict between classes there begins, founded in the division of the social surplus, and constitutes the fundamental antagonism in all class.
This holds true in case of several capitalist nations such as US, Canada, South Korea, etc. But however in case of India this classification becomes complicated due to yet another form of classification which effectively nullified any form of possible class conflict, 'Casteism'.

What is Casteism in Hinduism ?

Hindu Casteism (from material basis) is a form of hereditary class based on hierarchal order which ensures the flow the capital to the top most caste order and control over modes of production with the help of religious decrees itself.
It's a classification which sets 'permanent classes' based on their 'assigned' modes of production and their position within it's societal superstructures according to their hierarchy set by the 'permanent' ruling classes.
Once you take birth in one of these castes (hereditary classes), you'll be automatically assigned to the forces of production according to the 'order', which you'll do for the rest of your life.
Unlike Class, Casteism severally restricted upward mobility of people belonging to the lower strata of the Caste order, exception being a few handpicked intermediate 'gate keeping' castes loyal to this system. Who were sometimes rewarded by promotion, to become ruling classes itself.

So what changed this ?

Pre-arrival of British colonisation, caste and class were very much indistinguishable. Apart from ruling class there were hand picked bourgeois intermediate classes (vaishya) who were in direct service to the upper caste (sometimes the roles were reversed). The proletarian class (shudra and pariahs) were pretty much same as their european counterparts, lacked capital and hence no control over their means of production, in addition to that they also faced inhumane discrimination because of the caste in which they were born in. Thus were looked down upon as inferior subhumans.
This discriminatory system ensured poverty of the lower caste and prosperity of the top order, despite the lower caste comprising 90% of the population, as well as guaranteed cheap labour and exploitation of the working class 'caste'.
However with the introduction of colonial capitalism by Britishers the modes of production of old feudal order 'fused' with it to become a semi-industrial semi-feudal economy. This is when for the first time the European styled working classes began to take shape in India, parallel to hereditary classes that is casteism. This also introduced new bougeois classes within every community irrespective of their caste, but it's topic for another discussion.
Irrespective of the changes the older hereditary classes still affected this new order, those belonging to upper caste still had access to privileged jobs, better positions and capitals, hence were comparatively in better & prosperous position to that of those belonging to the lower strata of the older caste based order. With the introduction of 'English Education Act 1835' and later 'Macaulay Committee 1854' by Britishers, it further cemented caste order within this new colonial administration, ensuring the hierarchy of the upper caste and exploitation of oppressed castes.

Privileged classes and Caste blind class struggle

In words of Thomas Babington Macaulay:
"We (Britishers) should try to create a class of people, who would work as translators between the people who we are ruling and us, even though they may look like Indians by color; but their likes and dislikes, morals and thinking will be like an Englishman"
As, we can see the British were ok with the casteism as long as it ensured their hold and smooth management of their empire. Sure they helped abolishing the gut wrenching misogynistic practices such as 'Sati' but made almost zero effort to abolish caste system and untouchability (as this would mean they'll loose insubordination of intermediate 'gate keeping' classes that were in service to the British crown.
This new Intermediate urban classes had privileges to several rights within colonial administration in comparison to ordinary classes, however as we have mentioned earlier that with the introduction of colonial capitalism majority of castes further split into binary classes, economically forward and backward classes (note : this was only in case of upper and intermediate castes, majority of oppressed castes were still under poverty). The economically forward classes were infact the privileged classes and the economically backward classes began to fall in the borderline category between Upper-intermediate castes and Lower castes.
And this where 'caste blind' atheism, secularism, and socialism originates from. Who saw capitalism as well as colonialism as cruel system/occupation with respect to their material conditions but failed to emancipate and recognise inhumane treatment faced by those below their classes.
But does this mean that they were barred same as oppressed communities in upward mobility within this colonial capitalism?
No, They still had access to capitalist progress and upward mobility within the society. Simply put,
Casteism filtered oppressed castes from upward mobility within this new capitalist order while capitalism ensured that there will be limited progressiveness within the upper caste friendly circles.
So, whenever an economically backward class member transitioned into economically forward class they carried out his former progressive social ideas to their new found social position within society, while simultaneously giving up their resistance to capitalism. This new default ideology was known liberalism.
British colonial administration in India had many parallels with Apartheid system, but that is debate for another topic.

Consequences of Caste blindness in other '–isms'

With important positions still in access to powerful 'caste blind' and 'casteist' members of the society, they began to clash for power struggle. But they all had one commonality, they didn't gave up their caste identity.
During independence this power struggle began to materialise in two types of ideologies basically – 'caste blind' Leftism and 'meritocracy' based liberalism/conservativism but non of them were seriously against at each others throat as they were getting equal opportunities for their personal betterment.
But, what did the oppressed caste proletariats gain from this? Nothing.
They only got a chance at betterment when Dr. Ambedkar, Jyotiba Phule, Savitri Bai Phule,etc began to make efforts at upliftment of them. However their efforts lacked anti-capitalist approach which emphasized less on capitalist oppression more on caste based emancipation. Which later proved detrimental in their efforts.

Modern day India and caste based wealth inequality

After the ( ½) implementation of Mandal Commission and Naxal Uprising, it began to perturb this harmonic 'clash' between conservatives and progressive left-liberal dynamics as it began to inject more and more political conciousness within the oppressed communities for reservations and political participation.
This is where the concept of savarna meritocracy, comes forth.

Illusion of Meritocracy

Meritocracy is a belief that affirmative actions results in positive results and vise versa in reality is a capitalist hypothesis, a fallacy which fuels the illusion that we are in a merit-based system.
Meritocracies tend to stratify over time. Successful people will pass on their wealth and privileges to their children and can perpetuate a widening inequality of opportunities. It can lead to the misplaced belief that only their talents and hard work account for their success, neglecting the support they have received. — Chan Chun Sing, Min. of Education, Singapore
This meritocratic illusion began to impose predetermined conditions which were biased and opaque on underprivileged candidates, missing to match their criterion in fixed amount of time means ruining of candidate's dreams. In other words it was an underhand tactics to filter out 'representation based/unfavourable candidates' and simply stereotyping them as 'unworthy', disregarding the unequal support the competing candidates got due to their material conditions and pretends that they 'reward the best of the best,' also overlooking the possibility of discrimination faced by oppressed caste students at hands of Upper caste dominant faculties.
After 1960 more and more population of the United States spent more than one-fourth of their entire lifetime in schools, from ages two to twenty-two. As on so many other levels and ways of mass democracy, inflation had set in, diminishing drastically the content and the quality of learning: more and more young people, after twenty years in schools, could not read or write without difficulty. Schools are overcrowded, including colleges and universities. In this increasingly bureaucratized world little more than the possession of various diplomas mattered. Since admission to certain schools-rather than the consequently almost automatic acquisition of degrees-depended on increasingly competitive examinations, the word “ meritocracy“ was coined, meaning that the rising positions to be acquired in society depended on the category of the degree and on the category of the college or university where from one graduate. In reality the term “meritocracy“ was misleading. As in so many of these spheres of life, the rules that govern the practices and functions of schools and universities were bureaucratic rather than meritocratic. It is bureaucracy, not meritocracy, the categorizes the employment of people by their academic degrees. The number and the variation of degrees awarded by higher institutions grew to a fantastic, and nonsensical, extent. Besides being custodial, the purpose of institutional education was now the granting of degrees to provide instant employment. – John Lukacs (At the End of an Age)

Final Conclusion

Provided all factors what we can conclude that Bhagwa Atheism, is form of Hindu upper caste exceptionalism (Agonistic Atheism) which believes in:
•the illusionary meritocracy that their material conditions is due to the (upper) caste in which they were born in.
•hating all religious dogma belonging to all faiths (including hinduism) but still hold dear to their caste based identity, hence the sympathy for hinduism.
•merit based order, refuses to acknowledge caste discrimination and caste wealth gap, sees it as inherited inability.
•convenient switching between Atheism and minimal Hinduism.
•convenient switching between liberalism and conservativism.
Thus, it's a type of agonistic atheism which does more & more damage to gnostic atheist beliefs and their critical thinking potential, making them more and more susceptible towards theism. In case of ex-hindus it's hinduism.
submitted by Crimson_SS9321 to atheismindia [link] [comments]


2024.06.01 14:36 adulting4kids Poetry Class 15-16

Week 15-16: Triolets and Kyrielles
Day 1: Mastering Triolets - Activity: Analyze a classic triolet for its compact structure and repetition. - Lecture: Discuss the characteristics and rhyme scheme of triolets. - Discussion: Share thoughts on the impact of repeated lines in a compact form.
Day 2: Crafting Triolets with Precision - Activity: Break down the process of crafting a triolet. - Lecture: Explore the use of repetition and economy of language in triolets. - Discussion: Share and discuss individual triolets, focusing on the success of repetition.
Day 3: Embracing the Kyrielle - Activity: Analyze a famous kyrielle for its repeating lines and rhythmic qualities. - Lecture: Explain the structure and thematic possibilities of kyrielles. - Discussion: Discuss the challenges and beauty of crafting poems with repeated lines.
Day 4: Writing Exercise - Developing a Kyrielle - Activity: Craft a kyrielle exploring themes of resilience or change. - Assignment: Write a triolet on a chosen subject. - Vocabulary Words: Refrain, Rhyme Scheme, Narrative Possibilities.
Day 5: Peer Review and Feedback - Activity: Peer review workshop for triolets and kyrielles. - Lecture: Discuss the impact of repeated lines in triolets and the thematic possibilities of kyrielles. - Discussion: Share insights gained from reviewing peers' work.
Study Guide Questions for Week 15-16: 1. Discuss the characteristics and rhyme scheme of triolets. How does repetition contribute to their impact? 2. Explore the use of repetition and economy of language in crafting triolets. 3. What defines a kyrielle, and how do its repeating lines contribute to its thematic possibilities? 4. Discuss the challenges and beauty of crafting poems with repeated lines in kyrielles. 5. Reflect on the process of crafting triolets and kyrielles. How did you approach the themes and rhythmic qualities?
Quiz: Assessment on triolets, kyrielles, and the impact of repeated lines in poetry.
Week 17-18: Ode to Joyful Ballads
Day 1: Writing Joyful Odes - Activity: Analyze classic odes for their celebratory nature. - Lecture: Discuss the characteristics and structure of odes. - Discussion: Share personal experiences or topics worthy of celebration.
Day 2: Crafting Odes with Precision - Activity: Break down the process of crafting an ode. - Lecture: Explore the use of vivid language and poetic devices in odes. - Discussion: Share and discuss individual odes, highlighting successful elements.
Day 3: Understanding Narrative Ballads - Activity: Analyze a famous ballad for its storytelling qualities. - Lecture: Explain the narrative structure and musicality of ballads. - Discussion: Discuss the challenges and beauty of crafting narrative ballads.
Day 4: Writing Exercise - Crafting a Ballad - Activity: Craft a ballad recounting a personal or fictional tale. - Assignment: Write an ode celebrating an everyday object or experience. - Vocabulary Words: Ode, Stanza, Narrative Structure.
Day 5: Peer Review and Feedback - Activity: Peer review workshop for odes and ballads. - Lecture: Discuss the celebratory nature of odes and the storytelling qualities of ballads. - Discussion: Share insights gained from reviewing peers' work.
Study Guide Questions for Week 17-18: 1. Discuss the characteristics and structure of odes. How do odes differ from other poetic forms? 2. Explore the use of vivid language and poetic devices in crafting odes. 3. What defines a ballad, and how does its narrative structure contribute to its storytelling qualities? 4. Discuss the challenges and beauty of celebrating everyday objects or experiences in odes. 5. Reflect on the process of crafting odes and ballads. How did you approach celebratory themes and storytelling?
Quiz: Assessment on the understanding of odes, ballads, and the use of vivid language in poetry.
Feel free to continue with additional weeks or ask for specific details!
submitted by adulting4kids to writingthruit [link] [comments]


2024.06.01 14:30 adulting4kids Poetry Course Weeks Five and Six

Week 5: Ghazal and Tanka Mastery
Day 1: Unveiling the Ghazal - Activity: Analyze classic ghazals for their structure and themes. - Lecture: Explore the historical and cultural context of ghazals. - Discussion: Share impressions and discuss the themes of love and longing in ghazals.
Day 2: Crafting the Ghazal Form - Activity: Break down the structure of a ghazal and discuss rhyme patterns. - Lecture: Explore the traditional themes and variations within ghazals. - Discussion: Discuss the challenges and beauty of writing within the constraints of a ghazal.
Day 3: Understanding Tanka - Activity: Analyze traditional tankas for their brevity and emotion. - Lecture: Explain the structure and cultural significance of tankas. - Discussion: Share thoughts on capturing a moment in five lines.
Day 4: Writing Exercise - Expressive Tanka - Activity: Write tankas focusing on concise expression of emotion. - Assignment: Craft a tanka capturing a fleeting moment or emotion. - Vocabulary Words: Matla, Radif, Wazn.
Day 5: Peer Review and Feedback - Activity: Peer review workshop for ghazals and tankas. - Lecture: Discuss the impact of repetition in ghazals and the art of brevity in tankas. - Discussion: Share insights gained from reviewing peers' work.
Study Guide Questions for Week 5: 1. What are the traditional themes of love and longing in ghazals? 2. Explore the structure of a ghazal, including the use of repeated words and rhyme patterns. 3. Discuss the cultural significance of tankas and their role in capturing fleeting moments. 4. How does the brevity of tankas contribute to their emotional impact? 5. Reflect on the challenges and rewards of crafting ghazals and tankas.
Quiz: Assessment on the understanding of ghazals, tankas, and the cultural context of these poetic forms.
Week 6: Cinquains and Pantoum Prowess
Day 1: Mastering Cinquains - Activity: Analyze classic cinquains for their simplicity and structure. - Lecture: Explore the syllabic pattern and thematic focus of cinquains. - Discussion: Share thoughts on capturing a subject in just five lines.
Day 2: Crafting Cinquains with Precision - Activity: Break down the process of crafting a cinquain. - Lecture: Discuss the importance of word choice and economy of language in cinquains. - Discussion: Share and discuss individual cinquains, highlighting successful elements.
Day 3: Embracing the Pantoum - Activity: Analyze a famous pantoum for its repetition and layered meaning. - Lecture: Explain the structure and narrative possibilities of pantoums. - Discussion: Discuss the role of repetition in creating a rhythmic flow.
Day 4: Writing Exercise - Developing a Pantoum - Activity: Craft a pantoum exploring a theme of personal growth or change. - Assignment: Write a cinquain on a chosen subject. - Vocabulary Words: Quatrain, Refrain, Syllabic Pattern.
Day 5: Peer Review and Feedback - Activity: Peer review workshop for cinquains and pantoums. - Lecture: Discuss the challenges and rewards of repetition in pantoums. - Discussion: Share insights gained from reviewing peers' work.
Study Guide Questions for Week 6: 1. Discuss the simplicity and structure of cinquains. How does their syllabic pattern contribute to their impact? 2. Explore the importance of word choice and economy of language in crafting cinquains. 3. What defines a pantoum, and how does repetition contribute to its rhythmic flow? 4. Discuss the narrative possibilities and layered meaning in pantoums. 5. Reflect on the process of crafting cinquains and pantoums. What challenges did you face?
Quiz: Assessment on cinquains, pantoums, and the effective use of repetition in poetry.
submitted by adulting4kids to writingthruit [link] [comments]


2024.06.01 14:29 adulting4kids Week One Poetry

Week 1: Introduction to Poetry and Sonnets
Day 1: Overview of Poetry Styles - Activity: Icebreaker - Introduce yourself through a poetic name acrostic. - Lecture: Brief history of poetry, introduction to various styles. - Discussion: What draws you to poetry? Share your favorite poems.
Day 2: Understanding Sonnets - Activity: Analyze a classic sonnet together. - Lecture: Explanation of sonnet structure (Shakespearean and Petrarchan). - Discussion: Share initial impressions and feelings about sonnets.
Day 3: Writing Exercise - Crafting a Sonnet - Activity: Break down sonnet structure with examples. - Assignment: Write a sonnet exploring a personal experience or emotion. - Vocabulary Words: Quatrain, Couplet, Volta.
Day 4: Peer Review and Feedback - Activity: Peer review workshop for sonnets. - Lecture: Discuss common challenges and strategies in sonnet writing. - Discussion: Share insights gained from reviewing peers' work.
Day 5: Recap and Reflection - Activity: Reflect on the week's lessons and exercises. - Lecture: Overview of upcoming weeks. - Assignment: Write a short reflection on what you've learned about poetry and sonnets.
Study Guide Questions for Week 1: 1. What is the basic structure of a sonnet? 2. Compare and contrast Shakespearean and Petrarchan sonnets. 3. How does the volta contribute to the meaning of a sonnet? 4. Discuss the role of rhyme and meter in sonnets. 5. Explore your personal connection to poetry. What emotions or themes resonate with you?
Quiz: A short quiz assessing understanding of sonnet structure, key terms, and the historical context of poetry.
Week 2: Embracing Haiku and Villanelle
Day 1: Understanding Haiku - Activity: Analyze classic haikus. - Lecture: Explain the traditional structure and themes of haikus. - Discussion: Share thoughts on the simplicity and depth of haikus.
Day 2: Crafting Haikus - Activity: Write haikus individually. - Lecture: Discuss the significance of nature in haikus. - Discussion: Share and discuss individual haikus.
Day 3: Unraveling the Villanelle - Activity: Analyze a famous villanelle. - Lecture: Explore the structure and repetition in villanelles. - Discussion: Discuss the impact of repeated lines on the overall theme.
Day 4: Writing Exercise - Composing a Villanelle - Activity: Break down the process of crafting a villanelle. - Assignment: Write a villanelle on the theme of memory or loss. - Vocabulary Words: Tercet, Refrain, Envoi.
Day 5: Peer Review and Feedback - Activity: Peer review workshop for villanelles. - Lecture: Discuss the challenges and beauty of crafting repetitive forms. - Discussion: Share insights gained from reviewing peers' villanelles.
Study Guide Questions for Week 2: 1. What defines a haiku? Discuss its structure and thematic elements. 2. Explore the cultural significance of nature in haikus. 3. What is the structure of a villanelle, and how does repetition contribute to its impact? 4. Discuss the emotions evoked by repeated lines in a villanelle. 5. Reflect on the process of crafting a villanelle. What challenges did you face?
Quiz: Assessment on the understanding of haikus, villanelles, and the effective use of repetition in poetry.
submitted by adulting4kids to writingthruit [link] [comments]


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

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


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

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


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

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


2024.06.01 14:23 kSqsnDysTsKAGDMu As a solo player, MoP Remix has been the best PvE experience I’ve had in WoW so far.

This post goes into detail about my personal experience playing MoP Remix as well as why I think it’s an enormous step in the right direction.
I’ve been playing WoW since 2005, mostly as a PvP player and mostly solo. I don’t enjoy being in a guild or doing organized PvP or PvE content, simply because I don’t like the commitment. I play video games to escape and have fun. The moment I have to “answer” to someone (teammate, guildmate, etc.) it stops being fun and starts being a job.
I have, and have usually had, a lot of free time on my hands. Over the years, I put in countless hours in WoW. That being said, my skill level is average at best. I have about 20 keybinds and I have DBM installed. I’ve never used a weak aura. The best I’ve ever parsed is probably blue, and that was in Phase 1 of Classic WotLK. Up until MoP Remix, the highest difficulty I’ve raided is Normal and it wasn’t a regular occurrence for me. Most seasons I would just stop at LFR. I don’t intend to get any better at the game than this.
Initially when starting my char in MoP Remix, an Arms Warrior, I was quite skeptical of what I could hope to achieve given my past raiding experience (or lackthereof). I took it slow at first, didn’t even start when the event itself started, completely missed out on the frogs and got to 70 around the end of week 1. I got a bit curious about the cosmetics, saw the Mannoroth shoulders, saw the bones only drop from Normal and above and thought, sigh, not for me.
My previous experience with pugs was mixed. I fairly enjoyed pugging Phase 1 of Classic, skipped TBC entirely then also enjoyed Phase 1 of Classic WotLK. The barrier to entry was small to non-existant. In Classic WotLK you needed an initial GearScore that was easy enough to obtain, and in Classic I can’t recall needing anything specific. Note this is Phase 1 in both cases. Sometimes the groups would require Discord, but only for listening not speaking.
The only other time I pugged was in Legion, patch 7.2. This was a significantly worse experience for me. Between Normal mode groups asking me to “link acheiv” and getting into a group for Tomb of Sargeras only to wipe at the second boss and people already saying “kick all low dps” I didn’t really feel like this is an environment I wanna be in for long. I didn’t even get to Raider.io and parsing, I already stopped playing anything above LFR before that.
Back to MoP Remix, I thought “OK, if it’s gonna be like early Classic, cool, if it’s gonna be like Legion, nevermind”. So I signed up for a Mogu’shan Vaults pug. To my surprise, no one yelled at me or at other people throughout the raid, no one linked Discord at the beginning, and we actually finished the raid. I quickly realized that the only real requirement for raids in MoP Remix is ilvl. You technically don't even need to raid to improve your ilvl. You only need a time investment, and time is what I have in abundance.
So then I did more pugs and started to invest bronze into upgrading my gear. A few days later I finished all the normal raids and got my amulet. Then I started to farm open world mobs every day besides doing all the raids I could.
Today I reached ilvl 476, every piece upgraded to 556, and got the Mythic SoO achievement + 28 bones in total from Garrosh.
Given the relatively low difficulty of the content and the ease of gearing, I know this isn’t much, but for me who didn’t think I’d even get one bone, that’s quite a lot.
Now you may be asking yourself what is the point of all this. The point for me is when WoW says all I gotta do to get the best gear and do all the content is to put in the time — not become a highly skilled player or commit to a guild or get a high Raider.io score or whatever else — just play more, that to me sounds like a good deal. It sounds like a game I actually want to play and finish.
It means I can treat the game the same way as I treat something like Path of Exile. I don’t have to be an amazing player in PoE to get Mageblood and do all the ubers every league. I just need to devote my time to it.
Speaking of time, my total /played in MoP Remix so far is about 90 hours. I only play one char.
Thank you for reading my blog post. I hope Blizzard does more content like this in the future. Cheers.
submitted by kSqsnDysTsKAGDMu to wow [link] [comments]


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

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


2024.06.01 14:17 Seer-Ezekiel Vedic Astrology , Palmistry , Numerology & Tarot ✅

Hello everyone,
I analyze your Vedic Astrology , Palmistry & Numerology Chart.
My Service offers you Depth analysis of your life based on your Palm lines , Vedic Astrology , Numerology & Tarot.
I cover
Life Theme ✅
🎯This entails understanding the purpose of your life and your soul mission, the reason for your existence in this world. It also includes the lessons you need to learn in order to align yourself with the purpose of your life.
Careers ✅
🎯 Identifying Fruitful careers or jobs in which you will excel if pursued.
Marriage ✅
🎯In this section, I extensively discuss your marriage,
Such as
💫What kind of person will you end up marrying?
💫Where will you likely meet him/her?
💫How many serious relationships will you go through?
💫Appearance & Characteristic of Your Future Spouse
Major Influencing Planets ✅
🎯Your Previous, Current, Future Influencing Planet
💫What is your Previous & Current Influencing Planet & its Effects on You.
💫What will be your Future Influencing Planet & its Effects on You.
💫Effects of Significant Planets Coordinating Your Life & Your Personality
💫Additional Astrological Insights of your Inner self
🌟 Yearly Predictions 🌟
💫Precise Upcoming Year Overall Report of Your Career, Relationships, Health, Finances & More..
Palmistry ✅️
🎯In Palmistry,
Through palmistry, I read the lines on your dominant hand and provide insightful information about your past and future directions in life.
Such as
💫Your Childhood
💫Relationship with Family
💫Your Success & Life Factors
💫Your Inner Self
Numerology ✅
🎯In Numerology,
In numerology, I delve into,
💫The Energy you inherit with your Name
💫Birth Number Effects & its Influence on You
💫Fate Number Influence on You
💫Health Effects/Issues
Tarot ✅
🎯In Tarot,
By channelizing your current energy ,I will pull 3 cards and answer your questions that inclusively considering overall analysis for an accurate answers. 3 Questions Only [Charges will add on for more].
🎯 Price Accordance
🌟Depth Personalized Analysis + Numerology + Tarot 70$ USD
🌟Depth Personalized Analysis+ Numerology $60 USD
🌟Depth Personalized Analysis + Tarot $55 USD
🌟Depth Personalized Analysis $45 USD
🌟Normal Personalized Analysis + Numerology +Tarot $50 USD
🌟Normal Personalized Analysis +Numerology $40 USD
🌟Normal Personalized Analysis+ Tarot $35 USD
🌟Normal Personalized Analysis $25 USD
🎯Via PayPal ✅ Zelle ✅ Cashapp ✅
🎯Via Venmo ✅ Wise ✅ USDT ✅
💢For Authenticity & Accuracy💢
👇 Feedbacks from Clients 👇
Reviews 1
Reviews 2
Reviews 3
Reviews 4
🎯Certified Achievement Here
🕉 Do Not Hesitate to Chat , If You have questions regarding my Service 💯
submitted by Seer-Ezekiel to Clairvoyantreadings [link] [comments]


2024.06.01 14:17 Seer-Ezekiel Vedic Astrology , Palmistry , Numerology & Tarot ✅

Hello everyone,
I analyze your Vedic Astrology , Palmistry & Numerology Chart.
My Service offers you Depth analysis of your life based on your Palm lines , Vedic Astrology , Numerology & Tarot.
I cover
Life Theme ✅
🎯This entails understanding the purpose of your life and your soul mission, the reason for your existence in this world. It also includes the lessons you need to learn in order to align yourself with the purpose of your life.
Careers ✅
🎯 Identifying Fruitful careers or jobs in which you will excel if pursued.
Marriage ✅
🎯In this section, I extensively discuss your marriage,
Such as
💫What kind of person will you end up marrying?
💫Where will you likely meet him/her?
💫How many serious relationships will you go through?
💫Appearance & Characteristic of Your Future Spouse
Major Influencing Planets ✅
🎯Your Previous, Current, Future Influencing Planet
💫What is your Previous & Current Influencing Planet & its Effects on You.
💫What will be your Future Influencing Planet & its Effects on You.
💫Effects of Significant Planets Coordinating Your Life & Your Personality
💫Additional Astrological Insights of your Inner self
🌟 Yearly Predictions 🌟
💫Precise Upcoming Year Overall Report of Your Career, Relationships, Health, Finances & More..
Palmistry ✅️
🎯In Palmistry,
Through palmistry, I read the lines on your dominant hand and provide insightful information about your past and future directions in life.
Such as
💫Your Childhood
💫Relationship with Family
💫Your Success & Life Factors
💫Your Inner Self
Numerology ✅
🎯In Numerology,
In numerology, I delve into,
💫The Energy you inherit with your Name
💫Birth Number Effects & its Influence on You
💫Fate Number Influence on You
💫Health Effects/Issues
Tarot ✅
🎯In Tarot,
By channelizing your current energy ,I will pull 3 cards and answer your questions that inclusively considering overall analysis for an accurate answers. 3 Questions Only [Charges will add on for more].
🎯 Price Accordance
🌟Depth Personalized Analysis + Numerology + Tarot 70$ USD
🌟Depth Personalized Analysis+ Numerology $60 USD
🌟Depth Personalized Analysis + Tarot $55 USD
🌟Depth Personalized Analysis $45 USD
🌟Normal Personalized Analysis + Numerology +Tarot $50 USD
🌟Normal Personalized Analysis +Numerology $40 USD
🌟Normal Personalized Analysis+ Tarot $35 USD
🌟Normal Personalized Analysis $25 USD
🎯Via PayPal ✅ Zelle ✅ Cashapp ✅
🎯Via Venmo ✅ Wise ✅ USDT ✅
💢For Authenticity & Accuracy💢
👇 Feedbacks from Clients 👇
Reviews 1
Reviews 2
Reviews 3
Reviews 4
🎯Certified Achievement Here
🕉 Do Not Hesitate to Chat , If You have questions regarding my Service 💯
submitted by Seer-Ezekiel to energy_healing [link] [comments]


2024.06.01 14:17 Seer-Ezekiel Vedic Astrology , Palmistry , Numerology & Tarot ✅

Hello everyone,
I analyze your Vedic Astrology , Palmistry & Numerology Chart.
My Service offers you Depth analysis of your life based on your Palm lines , Vedic Astrology , Numerology & Tarot.
I cover
Life Theme ✅
🎯This entails understanding the purpose of your life and your soul mission, the reason for your existence in this world. It also includes the lessons you need to learn in order to align yourself with the purpose of your life.
Careers ✅
🎯 Identifying Fruitful careers or jobs in which you will excel if pursued.
Marriage ✅
🎯In this section, I extensively discuss your marriage,
Such as
💫What kind of person will you end up marrying?
💫Where will you likely meet him/her?
💫How many serious relationships will you go through?
💫Appearance & Characteristic of Your Future Spouse
Major Influencing Planets ✅
🎯Your Previous, Current, Future Influencing Planet
💫What is your Previous & Current Influencing Planet & its Effects on You.
💫What will be your Future Influencing Planet & its Effects on You.
💫Effects of Significant Planets Coordinating Your Life & Your Personality
💫Additional Astrological Insights of your Inner self
🌟 Yearly Predictions 🌟
💫Precise Upcoming Year Overall Report of Your Career, Relationships, Health, Finances & More..
Palmistry ✅️
🎯In Palmistry,
Through palmistry, I read the lines on your dominant hand and provide insightful information about your past and future directions in life.
Such as
💫Your Childhood
💫Relationship with Family
💫Your Success & Life Factors
💫Your Inner Self
Numerology ✅
🎯In Numerology,
In numerology, I delve into,
💫The Energy you inherit with your Name
💫Birth Number Effects & its Influence on You
💫Fate Number Influence on You
💫Health Effects/Issues
Tarot ✅
🎯In Tarot,
By channelizing your current energy ,I will pull 3 cards and answer your questions that inclusively considering overall analysis for an accurate answers. 3 Questions Only [Charges will add on for more].
🎯 Price Accordance
🌟Depth Personalized Analysis + Numerology + Tarot 70$ USD
🌟Depth Personalized Analysis+ Numerology $60 USD
🌟Depth Personalized Analysis + Tarot $55 USD
🌟Depth Personalized Analysis $45 USD
🌟Normal Personalized Analysis + Numerology +Tarot $50 USD
🌟Normal Personalized Analysis +Numerology $40 USD
🌟Normal Personalized Analysis+ Tarot $35 USD
🌟Normal Personalized Analysis $25 USD
🎯Via PayPal ✅ Zelle ✅ Cashapp ✅
🎯Via Venmo ✅ Wise ✅ USDT ✅
💢For Authenticity & Accuracy💢
👇 Feedbacks from Clients 👇
Reviews 1
Reviews 2
Reviews 3
Reviews 4
🎯Certified Achievement Here
🕉 Do Not Hesitate to Chat , If You have questions regarding my Service 💯
submitted by Seer-Ezekiel to MediumReadings [link] [comments]


2024.06.01 14:16 Seer-Ezekiel Vedic Astrology , Palmistry , Numerology & Tarot ✅

Hello everyone,
I analyze your Vedic Astrology , Palmistry & Numerology Chart.
My Service offers you Depth analysis of your life based on your Palm lines , Vedic Astrology , Numerology & Tarot.
I cover
Life Theme ✅
🎯This entails understanding the purpose of your life and your soul mission, the reason for your existence in this world. It also includes the lessons you need to learn in order to align yourself with the purpose of your life.
Careers ✅
🎯 Identifying Fruitful careers or jobs in which you will excel if pursued.
Marriage ✅
🎯In this section, I extensively discuss your marriage,
Such as
💫What kind of person will you end up marrying?
💫Where will you likely meet him/her?
💫How many serious relationships will you go through?
💫Appearance & Characteristic of Your Future Spouse
Major Influencing Planets ✅
🎯Your Previous, Current, Future Influencing Planet
💫What is your Previous & Current Influencing Planet & its Effects on You.
💫What will be your Future Influencing Planet & its Effects on You.
💫Effects of Significant Planets Coordinating Your Life & Your Personality
💫Additional Astrological Insights of your Inner self
🌟 Yearly Predictions 🌟
💫Precise Upcoming Year Overall Report of Your Career, Relationships, Health, Finances & More..
Palmistry ✅️
🎯In Palmistry,
Through palmistry, I read the lines on your dominant hand and provide insightful information about your past and future directions in life.
Such as
💫Your Childhood
💫Relationship with Family
💫Your Success & Life Factors
💫Your Inner Self
Numerology ✅
🎯In Numerology,
In numerology, I delve into,
💫The Energy you inherit with your Name
💫Birth Number Effects & its Influence on You
💫Fate Number Influence on You
💫Health Effects/Issues
Tarot ✅
🎯In Tarot,
By channelizing your current energy ,I will pull 3 cards and answer your questions that inclusively considering overall analysis for an accurate answers. 3 Questions Only [Charges will add on for more].
🎯 Price Accordance
🌟Depth Personalized Analysis + Numerology + Tarot 70$ USD
🌟Depth Personalized Analysis+ Numerology $60 USD
🌟Depth Personalized Analysis + Tarot $55 USD
🌟Depth Personalized Analysis $45 USD
🌟Normal Personalized Analysis + Numerology +Tarot $50 USD
🌟Normal Personalized Analysis +Numerology $40 USD
🌟Normal Personalized Analysis+ Tarot $35 USD
🌟Normal Personalized Analysis $25 USD
🎯Via PayPal ✅ Zelle ✅ Cashapp ✅
🎯Via Venmo ✅ Wise ✅ USDT ✅
💢For Authenticity & Accuracy💢
👇 Feedbacks from Clients 👇
Reviews 1
Reviews 2
Reviews 3
Reviews 4
🎯Certified Achievement Here
🕉 Do Not Hesitate to Chat , If You have questions regarding my Service 💯
submitted by Seer-Ezekiel to PaidTarotServices [link] [comments]


2024.06.01 14:16 Seer-Ezekiel Vedic Astrology , Palmistry , Numerology & Tarot ✅

Hello everyone,
I analyze your Vedic Astrology , Palmistry & Numerology Chart.
My Service offers you Depth analysis of your life based on your Palm lines , Vedic Astrology , Numerology & Tarot.
I cover
Life Theme ✅
🎯This entails understanding the purpose of your life and your soul mission, the reason for your existence in this world. It also includes the lessons you need to learn in order to align yourself with the purpose of your life.
Careers ✅
🎯 Identifying Fruitful careers or jobs in which you will excel if pursued.
Marriage ✅
🎯In this section, I extensively discuss your marriage,
Such as
💫What kind of person will you end up marrying?
💫Where will you likely meet him/her?
💫How many serious relationships will you go through?
💫Appearance & Characteristic of Your Future Spouse
Major Influencing Planets ✅
🎯Your Previous, Current, Future Influencing Planet
💫What is your Previous & Current Influencing Planet & its Effects on You.
💫What will be your Future Influencing Planet & its Effects on You.
💫Effects of Significant Planets Coordinating Your Life & Your Personality
💫Additional Astrological Insights of your Inner self
🌟 Yearly Predictions 🌟
💫Precise Upcoming Year Overall Report of Your Career, Relationships, Health, Finances & More..
Palmistry ✅️
🎯In Palmistry,
Through palmistry, I read the lines on your dominant hand and provide insightful information about your past and future directions in life.
Such as
💫Your Childhood
💫Relationship with Family
💫Your Success & Life Factors
💫Your Inner Self
Numerology ✅
🎯In Numerology,
In numerology, I delve into,
💫The Energy you inherit with your Name
💫Birth Number Effects & its Influence on You
💫Fate Number Influence on You
💫Health Effects/Issues
Tarot ✅
🎯In Tarot,
By channelizing your current energy ,I will pull 3 cards and answer your questions that inclusively considering overall analysis for an accurate answers. 3 Questions Only [Charges will add on for more].
🎯 Price Accordance
🌟Depth Personalized Analysis + Numerology + Tarot 70$ USD
🌟Depth Personalized Analysis+ Numerology $60 USD
🌟Depth Personalized Analysis + Tarot $55 USD
🌟Depth Personalized Analysis $45 USD
🌟Normal Personalized Analysis + Numerology +Tarot $50 USD
🌟Normal Personalized Analysis +Numerology $40 USD
🌟Normal Personalized Analysis+ Tarot $35 USD
🌟Normal Personalized Analysis $25 USD
🎯Via PayPal ✅ Zelle ✅ Cashapp ✅
🎯Via Venmo ✅ Wise ✅ USDT ✅
💢For Authenticity & Accuracy💢
👇 Feedbacks from Clients 👇
Reviews 1
Reviews 2
Reviews 3
Reviews 4
🎯Certified Achievement Here
🕉 Do Not Hesitate to Chat , If You have questions regarding my Service 💯
submitted by Seer-Ezekiel to professionaltarot [link] [comments]


2024.06.01 14:16 Seer-Ezekiel Vedic Astrology , Palmistry , Numerology & Tarot ✅

Hello everyone,
I analyze your Vedic Astrology , Palmistry & Numerology Chart.
My Service offers you Depth analysis of your life based on your Palm lines , Vedic Astrology , Numerology & Tarot.
I cover
Life Theme ✅
🎯This entails understanding the purpose of your life and your soul mission, the reason for your existence in this world. It also includes the lessons you need to learn in order to align yourself with the purpose of your life.
Careers ✅
🎯 Identifying Fruitful careers or jobs in which you will excel if pursued.
Marriage ✅
🎯In this section, I extensively discuss your marriage,
Such as
💫What kind of person will you end up marrying?
💫Where will you likely meet him/her?
💫How many serious relationships will you go through?
💫Appearance & Characteristic of Your Future Spouse
Major Influencing Planets ✅
🎯Your Previous, Current, Future Influencing Planet
💫What is your Previous & Current Influencing Planet & its Effects on You.
💫What will be your Future Influencing Planet & its Effects on You.
💫Effects of Significant Planets Coordinating Your Life & Your Personality
💫Additional Astrological Insights of your Inner self
🌟 Yearly Predictions 🌟
💫Precise Upcoming Year Overall Report of Your Career, Relationships, Health, Finances & More..
Palmistry ✅️
🎯In Palmistry,
Through palmistry, I read the lines on your dominant hand and provide insightful information about your past and future directions in life.
Such as
💫Your Childhood
💫Relationship with Family
💫Your Success & Life Factors
💫Your Inner Self
Numerology ✅
🎯In Numerology,
In numerology, I delve into,
💫The Energy you inherit with your Name
💫Birth Number Effects & its Influence on You
💫Fate Number Influence on You
💫Health Effects/Issues
Tarot ✅
🎯In Tarot,
By channelizing your current energy ,I will pull 3 cards and answer your questions that inclusively considering overall analysis for an accurate answers. 3 Questions Only [Charges will add on for more].
🎯 Price Accordance
🌟Depth Personalized Analysis + Numerology + Tarot 70$ USD
🌟Depth Personalized Analysis+ Numerology $60 USD
🌟Depth Personalized Analysis + Tarot $55 USD
🌟Depth Personalized Analysis $45 USD
🌟Normal Personalized Analysis + Numerology +Tarot $50 USD
🌟Normal Personalized Analysis +Numerology $40 USD
🌟Normal Personalized Analysis+ Tarot $35 USD
🌟Normal Personalized Analysis $25 USD
🎯Via PayPal ✅ Zelle ✅ Cashapp ✅
🎯Via Venmo ✅ Wise ✅ USDT ✅
💢For Authenticity & Accuracy💢
👇 Feedbacks from Clients 👇
Reviews 1
Reviews 2
Reviews 3
Reviews 4
🎯Certified Achievement Here
🕉 Do Not Hesitate to Chat , If You have questions regarding my Service 💯
submitted by Seer-Ezekiel to PsychicReaders [link] [comments]


2024.06.01 14:15 Seer-Ezekiel Vedic Astrology , Palmistry , Numerology & Tarot ✅

Hello everyone,
I analyze your Vedic Astrology , Palmistry & Numerology Chart.
My Service offers you Depth analysis of your life based on your Palm lines , Vedic Astrology , Numerology & Tarot.
I cover
Life Theme ✅
🎯This entails understanding the purpose of your life and your soul mission, the reason for your existence in this world. It also includes the lessons you need to learn in order to align yourself with the purpose of your life.
Careers ✅
🎯 Identifying Fruitful careers or jobs in which you will excel if pursued.
Marriage ✅
🎯In this section, I extensively discuss your marriage,
Such as
💫What kind of person will you end up marrying?
💫Where will you likely meet him/her?
💫How many serious relationships will you go through?
💫Appearance & Characteristic of Your Future Spouse
Major Influencing Planets ✅
🎯Your Previous, Current, Future Influencing Planet
💫What is your Previous & Current Influencing Planet & its Effects on You.
💫What will be your Future Influencing Planet & its Effects on You.
💫Effects of Significant Planets Coordinating Your Life & Your Personality
💫Additional Astrological Insights of your Inner self
🌟 Yearly Predictions 🌟
💫Precise Upcoming Year Overall Report of Your Career, Relationships, Health, Finances & More..
Palmistry ✅️
🎯In Palmistry,
Through palmistry, I read the lines on your dominant hand and provide insightful information about your past and future directions in life.
Such as
💫Your Childhood
💫Relationship with Family
💫Your Success & Life Factors
💫Your Inner Self
Numerology ✅
🎯In Numerology,
In numerology, I delve into,
💫The Energy you inherit with your Name
💫Birth Number Effects & its Influence on You
💫Fate Number Influence on You
💫Health Effects/Issues
Tarot ✅
🎯In Tarot,
By channelizing your current energy ,I will pull 3 cards and answer your questions that inclusively considering overall analysis for an accurate answers. 3 Questions Only [Charges will add on for more].
🎯 Price Accordance
🌟Depth Personalized Analysis + Numerology + Tarot 70$ USD
🌟Depth Personalized Analysis+ Numerology $60 USD
🌟Depth Personalized Analysis + Tarot $55 USD
🌟Depth Personalized Analysis $45 USD
🌟Normal Personalized Analysis + Numerology +Tarot $50 USD
🌟Normal Personalized Analysis +Numerology $40 USD
🌟Normal Personalized Analysis+ Tarot $35 USD
🌟Normal Personalized Analysis $25 USD
🎯Via PayPal ✅ Zelle ✅ Cashapp ✅
🎯Via Venmo ✅ Wise ✅ USDT ✅
💢For Authenticity & Accuracy💢
👇 Feedbacks from Clients 👇
Reviews 1
Reviews 2
Reviews 3
Reviews 4
🎯Certified Achievement Here
🕉 Do Not Hesitate to Chat , If You have questions regarding my Service 💯
submitted by Seer-Ezekiel to SoulAwakening [link] [comments]


2024.06.01 14:15 Seer-Ezekiel Vedic Astrology , Palmistry , Numerology & Tarot ✅

Hello everyone,
I analyze your Vedic Astrology , Palmistry & Numerology Chart.
My Service offers you Depth analysis of your life based on your Palm lines , Vedic Astrology , Numerology & Tarot.
I cover
Life Theme ✅
🎯This entails understanding the purpose of your life and your soul mission, the reason for your existence in this world. It also includes the lessons you need to learn in order to align yourself with the purpose of your life.
Careers ✅
🎯 Identifying Fruitful careers or jobs in which you will excel if pursued.
Marriage ✅
🎯In this section, I extensively discuss your marriage,
Such as
💫What kind of person will you end up marrying?
💫Where will you likely meet him/her?
💫How many serious relationships will you go through?
💫Appearance & Characteristic of Your Future Spouse
Major Influencing Planets ✅
🎯Your Previous, Current, Future Influencing Planet
💫What is your Previous & Current Influencing Planet & its Effects on You.
💫What will be your Future Influencing Planet & its Effects on You.
💫Effects of Significant Planets Coordinating Your Life & Your Personality
💫Additional Astrological Insights of your Inner self
🌟 Yearly Predictions 🌟
💫Precise Upcoming Year Overall Report of Your Career, Relationships, Health, Finances & More..
Palmistry ✅️
🎯In Palmistry,
Through palmistry, I read the lines on your dominant hand and provide insightful information about your past and future directions in life.
Such as
💫Your Childhood
💫Relationship with Family
💫Your Success & Life Factors
💫Your Inner Self
Numerology ✅
🎯In Numerology,
In numerology, I delve into,
💫The Energy you inherit with your Name
💫Birth Number Effects & its Influence on You
💫Fate Number Influence on You
💫Health Effects/Issues
Tarot ✅
🎯In Tarot,
By channelizing your current energy ,I will pull 3 cards and answer your questions that inclusively considering overall analysis for an accurate answers. 3 Questions Only [Charges will add on for more].
🎯 Price Accordance
🌟Depth Personalized Analysis + Numerology + Tarot 70$ USD
🌟Depth Personalized Analysis+ Numerology $60 USD
🌟Depth Personalized Analysis + Tarot $55 USD
🌟Depth Personalized Analysis $45 USD
🌟Normal Personalized Analysis + Numerology +Tarot $50 USD
🌟Normal Personalized Analysis +Numerology $40 USD
🌟Normal Personalized Analysis+ Tarot $35 USD
🌟Normal Personalized Analysis $25 USD
🎯Via PayPal ✅ Zelle ✅ Cashapp ✅
🎯Via Venmo ✅ Wise ✅ USDT ✅
💢For Authenticity & Accuracy💢
👇 Feedbacks from Clients 👇
Reviews 1
Reviews 2
Reviews 3
Reviews 4
🎯Certified Achievement Here
🕉 Do Not Hesitate to Chat , If You have questions regarding my Service 💯
submitted by Seer-Ezekiel to SpellcastersForHire [link] [comments]


2024.06.01 14:15 Seer-Ezekiel Vedic Astrology , Palmistry , Numerology & Tarot ✅

Hello everyone,
I analyze your Vedic Astrology , Palmistry & Numerology Chart.
My Service offers you Depth analysis of your life based on your Palm lines , Vedic Astrology , Numerology & Tarot.
I cover
Life Theme ✅
🎯This entails understanding the purpose of your life and your soul mission, the reason for your existence in this world. It also includes the lessons you need to learn in order to align yourself with the purpose of your life.
Careers ✅
🎯 Identifying Fruitful careers or jobs in which you will excel if pursued.
Marriage ✅
🎯In this section, I extensively discuss your marriage,
Such as
💫What kind of person will you end up marrying?
💫Where will you likely meet him/her?
💫How many serious relationships will you go through?
💫Appearance & Characteristic of Your Future Spouse
Major Influencing Planets ✅
🎯Your Previous, Current, Future Influencing Planet
💫What is your Previous & Current Influencing Planet & its Effects on You.
💫What will be your Future Influencing Planet & its Effects on You.
💫Effects of Significant Planets Coordinating Your Life & Your Personality
💫Additional Astrological Insights of your Inner self
🌟 Yearly Predictions 🌟
💫Precise Upcoming Year Overall Report of Your Career, Relationships, Health, Finances & More..
Palmistry ✅️
🎯In Palmistry,
Through palmistry, I read the lines on your dominant hand and provide insightful information about your past and future directions in life.
Such as
💫Your Childhood
💫Relationship with Family
💫Your Success & Life Factors
💫Your Inner Self
Numerology ✅
🎯In Numerology,
In numerology, I delve into,
💫The Energy you inherit with your Name
💫Birth Number Effects & its Influence on You
💫Fate Number Influence on You
💫Health Effects/Issues
Tarot ✅
🎯In Tarot,
By channelizing your current energy ,I will pull 3 cards and answer your questions that inclusively considering overall analysis for an accurate answers. 3 Questions Only [Charges will add on for more].
🎯 Price Accordance
🌟Depth Personalized Analysis + Numerology + Tarot 70$ USD
🌟Depth Personalized Analysis+ Numerology $60 USD
🌟Depth Personalized Analysis + Tarot $55 USD
🌟Depth Personalized Analysis $45 USD
🌟Normal Personalized Analysis + Numerology +Tarot $50 USD
🌟Normal Personalized Analysis +Numerology $40 USD
🌟Normal Personalized Analysis+ Tarot $35 USD
🌟Normal Personalized Analysis $25 USD
🎯Via PayPal ✅ Zelle ✅ Cashapp ✅
🎯Via Venmo ✅ Wise ✅ USDT ✅
💢For Authenticity & Accuracy💢
👇 Feedbacks from Clients 👇
Reviews 1
Reviews 2
Reviews 3
Reviews 4
🎯Certified Achievement Here
🕉 Do Not Hesitate to Chat , If You have questions regarding my Service 💯
submitted by Seer-Ezekiel to Spiritual_Energy [link] [comments]


http://swiebodzin.info