Skip to content

Instantly share code, notes, and snippets.

View securetorobert's full-sized avatar

Robert John securetorobert

  • Nigeria
View GitHub Profile
@securetorobert
securetorobert / tf_feature_column_numeric_column.py
Created July 15, 2018 11:10
Create a numeric feature column
# Defaults to a tf.float32 scalar.
numeric_feature_column = tf.feature_column.numeric_column(key="SepalLength")
# Represent a tf.float64 scalar.
numeric_feature_column = tf.feature_column.numeric_column(key="SepalLength",
dtype=tf.float64)
# Represent a 10-element vector in which each cell contains a tf.float32.
vector_feature_column = tf.feature_column.numeric_column(key="Bowling",
shape=10)
@securetorobert
securetorobert / tf_l1_reg_imports.py
Created July 15, 2018 21:36
Import data for L1 Regularization in TensorFlow
import pandas as pd
import numpy as np
import tensorflow as tf
from sklearn.model_selection import train_test_split
#load training data
train_df = pd.read_csv('train.csv', index_col='ID')
#split into features and target
@securetorobert
securetorobert / tf_l1_reg_input_fn.py
Created July 15, 2018 21:39
Input function for estimator in TensorFlow
def input_fn(X, y, batch_size=16, epochs=1, shuffle=False):
#create a dictionary of features and their values
features = {key:np.array(value) for key,value in dict(X).items()}
#create a tf.data compliant dataset
d = tf.data.Dataset.from_tensor_slices((features, y))
#we need our data in batches
d = d.batch(batch_size).repeat(epochs)
#optionally shuffle our data
@securetorobert
securetorobert / tf_l1_reg_feature_columns.py
Created July 15, 2018 21:43
Create feature columns for l1 reg in TensorFlow
X.info()
feature_columns = [
tf.feature_column.numeric_column('crim', dtype=tf.float64),
tf.feature_column.numeric_column('zn', dtype=tf.float64),
tf.feature_column.numeric_column('indus', dtype=tf.float64),
tf.feature_column.numeric_column('chas', dtype=tf.int64),
tf.feature_column.numeric_column('nox', dtype=tf.float64),
tf.feature_column.numeric_column('rm', dtype=tf.float64),
tf.feature_column.numeric_column('age', dtype=tf.float64),
@securetorobert
securetorobert / tf_l1_reg_training.py
Created July 15, 2018 21:45
Training a model with l1 Regularization in TensorFlow
optimizer = tf.train.FtrlOptimizer(learning_rate=0.01, l1_regularization_strength=0.1)
estimator = tf.estimator.LinearRegressor(feature_columns=feature_columns, optimizer=optimizer)
estimator.train(input_fn= lambda: input_fn(X_train, y_train), steps=20)
@securetorobert
securetorobert / tf_l1_reg_evaluation.py
Last active July 15, 2018 21:47
Evaluate the l1 regularized model
evaluate_result = estimator.evaluate(input_fn=lambda: input_fn(X_train, y_train))
print("Training results")
for key in evaluate_result:
print(" {}, was: {}".format(key, evaluate_result[key]))
evaluate_result = estimator.evaluate(input_fn=lambda: input_fn(X_test, y_test))
print("Training results")
for key in evaluate_result:
print(" {}, was: {}".format(key, evaluate_result[key]))
@securetorobert
securetorobert / tf_l1_reg_prediction.py
Created July 15, 2018 21:50
Make a prediction on l1 reg model in TensorFlow
preds = estimator.predict(input_fn=lambda: input_fn(X_test, y_test))
predictions = np.array([item['predictions'][0] for item in preds])
@securetorobert
securetorobert / text_classifier_train_eval.py
Created August 14, 2018 14:04
Code designed to run training and evaluation on a DNNClassifier
import tensorflow as tf
import tensorflow_hub as hub
import pandas as pd
import numpy as np
import shutil
import seaborn as sns
import matplotlib.pyplot as plt
MODULE_SPEC_50 = 'https://tfhub.dev/google/nnlm-en-dim50/1'
@securetorobert
securetorobert / tf_estimator_pandas_input_function.py
Created September 15, 2018 13:49
Make an input function from a Pandas DataFrame
def make_input_fn(df, num_epochs):
return tf.estimator.inputs.pandas_input_fn(
x = df,
y = df['sentiment'],
batch_size = 128,
num_epochs = num_epochs,
shuffle = True,
queue_capacity = 1000,
num_threads = 1
@securetorobert
securetorobert / tf_input_function.py
Created September 18, 2018 09:47
Prepare data for input into an estimator
CSV_COLUMNS = ['medv', 'crim', 'zn', 'indus', 'chas', 'nox', 'rm', 'age', 'dis', 'rad', 'tax', 'ptratio', 'black', 'lstat']
LABEL_COLUMN = 'medv'
DEFAULTS = [[0.0], [0.0], [0.0], [0.0], [0], [0.0], [0.0], [0.0], [0.0], [0], [0], [0.0], [0.0], [0.0]]
def read_dataset(filename, mode, batch_size = 16):
def _input_fn():
def decode_csv(value_column):
columns = tf.decode_csv(value_column, record_defaults = DEFAULTS)
features = dict(zip(CSV_COLUMNS, columns))
label = features.pop(LABEL_COLUMN)