catsandogs / tr.py
okeowo1014's picture
Update tr.py
b6419e7 verified
raw
history blame
2.25 kB
import os
import numpy as np
import tensorflow as tf
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense, Embedding, GlobalAveragePooling1D
from tensorflow.keras.preprocessing.text import Tokenizer
from tensorflow.keras.preprocessing.sequence import pad_sequences
from sklearn.model_selection import train_test_split
from huggingface_hub import push_to_hub_keras
# Environment variable for Hugging Face token
sac = os.getenv('accesstoken')
# Sample data for sentiment analysis
texts = ["I love deep learning!", "I hate Mondays.", "This movie is fantastic.", "The weather is terrible."]
labels = np.array([1, 0, 1, 0]) # 1 for positive sentiment, 0 for negative sentiment
# Tokenize the texts
tokenizer = Tokenizer(num_words=1000, oov_token='<OOV>')
tokenizer.fit_on_texts(texts)
sequences = tokenizer.texts_to_sequences(texts)
padded_sequences = pad_sequences(sequences, maxlen=10, padding='post', truncating='post')
# Split data into training and testing sets
X_train, X_test, y_train, y_test = train_test_split(padded_sequences, labels, test_size=0.2, random_state=42)
# Build the model
model = Sequential([
Embedding(input_dim=1000, output_dim=16),
GlobalAveragePooling1D(),
Dense(16, activation='relu'),
Dense(1, activation='sigmoid')
])
model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy'])
# Train the model
model.fit(X_train, y_train, epochs=5, batch_size=2)
# Evaluate the model
loss, accuracy = model.evaluate(X_test, y_test)
print(f'Accuracy: {accuracy * 100:.2f}%')
# Save the model with the correct filepath extension
model.save('my_custom_text_classifier.h5')
# Later, load the model and make predictions
loaded_model = tf.keras.models.load_model('my_custom_text_classifier.h5')
# Example prediction
new_texts = ["I'm feeling great!", "This book is boring."]
sequences = tokenizer.texts_to_sequences(new_texts)
padded_sequences = pad_sequences(sequences, maxlen=10, padding='post', truncating='post')
predictions = loaded_model.predict(padded_sequences)
print(predictions)
push_to_hub_keras(
model,
repo_name="okeowo1014/kerascatanddog",
model_id="my_custom_text_classifier",
commit_message="Initial commit",
token=sac
)