Issue 1:
I'm trying to get TensorBoard working with Keras.

It looks like I'm able to run an initial model with tf (1.12.0) and keras (2.1.6-tf). I have some simple code. Listed below:

%matplotlib inline
from io import StringIO

import numpy as np
import pandas as pd
import tensorflow as tf

csv = StringIO('''a,b,c,y
0,1,2,0
1,2,0,1
0,2,1,0
3,2,1,1
3,1,2,0''')
data = pd.read_csv(csv)

def tb_cb(batch_size):
# visualize graphs and grandient
tb = tf.keras.callbacks.TensorBoard(log_dir='/tmp/test/',
histogram_freq=1,
batch_size=batch_size, write_graph=True,
write_grads=True)
return tb

m = tf.keras.Sequential([
# going to change 1 in the line below
tf.keras.layers.Dense(1, activation='relu', input_shape=(3,), name='hidden1'),
tf.keras.layers.Dense(1, activation='linear', name='output')
])
m.compile(loss='mse', optimizer='adam', metrics=['mae'])
X = data.iloc[:,:3]
y = data.y
hist = m.fit(X, y, epochs=10, verbose=1, callbacks=[tb_cb(10)],
validation_data=(X,y))

The first time I run this I get TensorBoard output. I have then changed the number of neurons in the hidden layer and re-run the model.

I get the following error:

---------------------------------------------------------------------------
InvalidArgumentError Traceback (most recent call last)
<ipython-input-11-4e4fb6f60bf0> in <module>
15 y = data.y
16 hist = m.fit(X, y, epochs=10, verbose=1, callbacks=[tb_cb(10)],
---> 17 validation_data=(X,y))

~/.env/364/lib/python3.6/site-packages/tensorflow/python/keras/engine/training.py in fit(self, x, y, batch_size, epochs, verbose, callbacks, validation_split, validation_data, shuffle, class_weight, sample_weight, initial_epoch, steps_per_epoch, validation_steps, max_queue_size, workers, use_multiprocessing, **kwargs)
1637 initial_epoch=initial_epoch,
1638 steps_per_epoch=steps_per_epoch,
-> 1639 validation_steps=validation_steps)
1640
1641 def evaluate(self,

~/.env/364/lib/python3.6/site-packages/tensorflow/python/keras/engine/training_arrays.py in fit_loop(model, inputs, targets, sample_weights, batch_size, epochs, verbose, callbacks, val_inputs, val_targets, val_sample_weights, shuffle, initial_epoch, steps_per_epoch, validation_steps)
231 sample_weights=val_sample_weights,
232 batch_size=batch_size,
--> 233 verbose=0)
234 if not isinstance(val_outs, list):
235 val_outs = [val_outs]

~/.env/364/lib/python3.6/site-packages/tensorflow/python/keras/engine/training_arrays.py in test_loop(model, inputs, targets, sample_weights, batch_size, verbose, steps)
437 ins_batch[i] = ins_batch[i].toarray()
438
--> 439 batch_outs = f(ins_batch)
440
441 if isinstance(batch_outs, list):

~/.env/364/lib/python3.6/site-packages/tensorflow/python/keras/backend.py in __call__(self, inputs)
2984
2985 fetched = self._callable_fn(*array_vals,
-> 2986 run_metadata=self.run_metadata)
2987 self._call_fetch_callbacks(fetched[-len(self._fetches):])
2988 return fetched[:len(self.outputs)]

~/.env/364/lib/python3.6/site-packages/tensorflow/python/client/session.py in __call__(self, *args, **kwargs)
1437 ret = tf_session.TF_SessionRunCallable(
1438 self._session._session, self._handle, args, status,
-> 1439 run_metadata_ptr)
1440 if run_metadata:
1441 proto_data = tf_session.TF_GetBuffer(run_metadata_ptr)

~/.env/364/lib/python3.6/site-packages/tensorflow/python/framework/errors_impl.py in __exit__(self, type_arg, value_arg, traceback_arg)
526 None, None,
527 compat.as_text(c_api.TF_Message(self.status.status)),
--> 528 c_api.TF_GetCode(self.status.status))
529 # Delete the underlying status object from memory otherwise it stays alive
530 # as there is a reference to status from this from the traceback due to

InvalidArgumentError: You must feed a value for placeholder tensor 'dense_9_target' with dtype float and shape [?,?]
[[{{node dense_9_target}} = Placeholder[dtype=DT_FLOAT, shape=[?,?], _device="/job:localhost/replica:0/task:0/device:CPU:0"]()]]

Issue 2:
TensorBoard in Keras crashes deep in the callbacks for the end-of-epoch. Here's a simplified version of the code:

The Code

import pandas as pd
import keras
from keras.models import Sequential
from keras.layers import Dense

class ToyNet ():
def __init__(self, run=1, layer_1_nodes=50, layer_2_nodes=100, layer_3_nodes=50):
self.run_seq = run
self.layer_1_nodes = layer_1_nodes
self.layer_2_nodes = layer_2_nodes
self.layer_3_nodes = layer_3_nodes

# Define the model
self.model = Sequential()
self.model.add(Dense(self.layer_1_nodes, input_dim=9, activation='relu', name='layer_1'))
self.model.add(Dense(self.layer_2_nodes, activation='relu', name='layer_2'))
self.model.add(Dense(self.layer_3_nodes, activation='relu', name='layer_3'))
self.model.add(Dense(1, activation='linear', name='output_layer'))
self.model.compile(loss='mean_squared_error', optimizer='adam')

# Create a TensorBoard logger
log_dir = "logs_{}".format(self.run_seq)
self.logger = keras.callbacks.TensorBoard(
log_dir=log_dir,
histogram_freq=5
)

def train(self, X, Y, epochs=50):
# Train the model
self.model.fit(
X,
Y,
epochs=epochs,
shuffle=True,
verbose=2,
validation_split=0.05,
callbacks=[self.logger]
)

def test(self, Xt, Yt):
test_error_rate = self.model.evaluate(Xt, Yt, verbose=0)
print("The mean squared error (MSE) for the test data set is: {}".format(test_error_rate))

if __name__ == '__main__':

training_data_df = pd.read_csv("sales_data_training_scaled.csv")

X = training_data_df.drop('total_earnings', axis=1).values
Y = training_data_df[['total_earnings']].values

# Load the test data set
test_data_df = pd.read_csv("sales_data_test_scaled.csv")

X_test = test_data_df.drop('total_earnings', axis=1).values
Y_test = test_data_df[['total_earnings']].values

print("Run #1")
toy1 = ToyNet(1, 50, 100, 50)
toy1.train(X, Y)
toy1.test(X_test, Y_test)

print("Run #2")
toy2 = ToyNet(2, 5, 100, 50)
toy2.train(X,Y) ### <--- Crashes here at the end of first epoch while doing callbacks
toy2.test(X_test, Y_test)

The Output

/anaconda3/lib/python3.6/site-packages/h5py/init.py:36: FutureWarning: Conversion of the second argument of issubdtype from float to np.floating is deprecated. In future, it will be treated as np.float64 == np.dtype(float).type.

from ._conv import register_converters as _register_converters

Using TensorFlow backend.

Run #1

Train on 950 samples, validate on 50 samples

Epoch 1/50

1s - loss: 0.0314 - val_loss: 0.0043

Epoch 2/50

0s - loss: 0.0048 - val_loss: 0.0011

... output snipped for brevity

Epoch 50/50

0s - loss: 2.4237e-05 - val_loss: 5.0361e-05

The mean squared error (MSE) for the test data set is: 7.575784547952935e-05

Run #2

Train on 950 samples, validate on 50 samples

Epoch 1/50

1s - loss: 0.0333 - val_loss: 0.0172

InvalidArgumentError Traceback (most recent call last)

/anaconda3/lib/python3.6/site-packages/tensorflow/python/client/session.py in _do_call(self, fn, *args)

1321 try:

-> 1322 return fn(*args)

1323 except errors.OpError as e:

/anaconda3/lib/python3.6/site-packages/tensorflow/python/client/session.py in _run_fn(feed_dict, fetch_list, target_list, options, run_metadata)

1306 return self._call_tf_sessionrun(

-> 1307 options, feed_dict, fetch_list, target_list, run_metadata)

1308

/anaconda3/lib/python3.6/site-packages/tensorflow/python/client/session.py in _call_tf_sessionrun(self, options, feed_dict, fetch_list, target_list, run_metadata)

1408 self._session, options, feed_dict, fetch_list, target_list,

-> 1409 run_metadata)

1410 else:

InvalidArgumentError: You must feed a value for placeholder tensor 'layer_1_input' with dtype float and shape [?,9]

[[Node: layer_1_input = Placeholderdtype=DT_FLOAT, shape=[?,9], _device="/job:localhost/replica:0/task:0/device:CPU:0"]]

During handling of the above exception, another exception occurred:

InvalidArgumentError Traceback (most recent call last)

in ()

64

65 toy2 = ToyNet(2, 5, 100, 50)

---> 66 toy2.train(X,Y) ### <--- Crashes here at the end of first epoch while doing callbacks

67 toy2.test(X_test, Y_test)

in train(self, X, Y, epochs)

39 verbose=2,

40 validation_split=0.05,

---> 41 callbacks=[self.logger]

42 )

43

/anaconda3/lib/python3.6/site-packages/keras/engine/training.py in fit(self, x, y, batch_size, epochs, verbose, callbacks, validation_split, validation_data, shuffle, class_weight, sample_weight, initial_epoch, steps_per_epoch, validation_steps, **kwargs)

1043 initial_epoch=initial_epoch,

1044 steps_per_epoch=steps_per_epoch,

-> 1045 validation_steps=validation_steps)

1046

1047 def evaluate(self, x=None, y=None,

/anaconda3/lib/python3.6/site-packages/keras/engine/training_arrays.py in fit_loop(model, f, ins, out_labels, batch_size, epochs, verbose, callbacks, val_f, val_ins, shuffle, callback_metrics, initial_epoch, steps_per_epoch, validation_steps)

215 for l, o in zip(out_labels, val_outs):

216 epoch_logs['val_' + l] = o

--> 217 callbacks.on_epoch_end(epoch, epoch_logs)

218 if callback_model.stop_training:

219 break

/anaconda3/lib/python3.6/site-packages/keras/callbacks.py in on_epoch_end(self, epoch, logs)

75 logs = logs or {}

76 for callback in self.callbacks:

---> 77 callback.on_epoch_end(epoch, logs)

78

79 def on_batch_begin(self, batch, logs=None):

/anaconda3/lib/python3.6/site-packages/keras/callbacks.py in on_epoch_end(self, epoch, logs)

915 assert len(batch_val) == len(tensors)

916 feed_dict = dict(zip(tensors, batch_val))

--> 917 result = self.sess.run([self.merged], feed_dict=feed_dict)

918 summary_str = result[0]

919 self.writer.add_summary(summary_str, epoch)

/anaconda3/lib/python3.6/site-packages/tensorflow/python/client/session.py in run(self, fetches, feed_dict, options, run_metadata)

898 try:

899 result = self._run(None, fetches, feed_dict, options_ptr,

--> 900 run_metadata_ptr)

901 if run_metadata:

902 proto_data = tf_session.TF_GetBuffer(run_metadata_ptr)

/anaconda3/lib/python3.6/site-packages/tensorflow/python/client/session.py in _run(self, handle, fetches, feed_dict, options, run_metadata)

1133 if final_fetches or final_targets or (handle and feed_dict_tensor):

1134 results = self._do_run(handle, final_targets, final_fetches,

-> 1135 feed_dict_tensor, options, run_metadata)

1136 else:

1137 results = []

/anaconda3/lib/python3.6/site-packages/tensorflow/python/client/session.py in _do_run(self, handle, target_list, fetch_list, feed_dict, options, run_metadata)

1314 if handle is None:

1315 return self._do_call(_run_fn, feeds, fetches, targets, options,

-> 1316 run_metadata)

1317 else:

1318 return self._do_call(_prun_fn, handle, feeds, fetches)

/anaconda3/lib/python3.6/site-packages/tensorflow/python/client/session.py in _do_call(self, fn, *args)

1333 except KeyError:

1334 pass

-> 1335 raise type(e)(node_def, op, message)

1336

1337 def _extend_graph(self):

InvalidArgumentError: You must feed a value for placeholder tensor 'layer_1_input' with dtype float and shape [?,9]

[[Node: layer_1_input = Placeholderdtype=DT_FLOAT, shape=[?,9], _device="/job:localhost/replica:0/task:0/device:CPU:0"]]

Caused by op 'layer_1_input', defined at:

File "/anaconda3/lib/python3.6/runpy.py", line 193, in _run_module_as_main

"main", mod_spec)

File "/anaconda3/lib/python3.6/runpy.py", line 85, in _run_code

exec(code, run_globals)

File "/anaconda3/lib/python3.6/site-packages/ipykernel_launcher.py", line 16, in

app.launch_new_instance()

File "/anaconda3/lib/python3.6/site-packages/traitlets/config/application.py", line 658, in launch_instance

app.start()

File "/anaconda3/lib/python3.6/site-packages/ipykernel/kernelapp.py", line 486, in start

self.io_loop.start()

File "/anaconda3/lib/python3.6/site-packages/tornado/platform/asyncio.py", line 127, in start

self.asyncio_loop.run_forever()

File "/anaconda3/lib/python3.6/asyncio/base_events.py", line 422, in run_forever

self._run_once()

File "/anaconda3/lib/python3.6/asyncio/base_events.py", line 1432, in _run_once

handle._run()

File "/anaconda3/lib/python3.6/asyncio/events.py", line 145, in _run

self._callback(*self._args)

File "/anaconda3/lib/python3.6/site-packages/tornado/platform/asyncio.py", line 117, in _handle_events

handler_func(fileobj, events)

File "/anaconda3/lib/python3.6/site-packages/tornado/stack_context.py", line 276, in null_wrapper

return fn(*args, **kwargs)

File "/anaconda3/lib/python3.6/site-packages/zmq/eventloop/zmqstream.py", line 450, in _handle_events

self._handle_recv()

File "/anaconda3/lib/python3.6/site-packages/zmq/eventloop/zmqstream.py", line 480, in _handle_recv

self._run_callback(callback, msg)

File "/anaconda3/lib/python3.6/site-packages/zmq/eventloop/zmqstream.py", line 432, in _run_callback

callback(*args, **kwargs)

File "/anaconda3/lib/python3.6/site-packages/tornado/stack_context.py", line 276, in null_wrapper

return fn(*args, **kwargs)

File "/anaconda3/lib/python3.6/site-packages/ipykernel/kernelbase.py", line 283, in dispatcher

return self.dispatch_shell(stream, msg)

File "/anaconda3/lib/python3.6/site-packages/ipykernel/kernelbase.py", line 233, in dispatch_shell

handler(stream, idents, msg)

File "/anaconda3/lib/python3.6/site-packages/ipykernel/kernelbase.py", line 399, in execute_request

user_expressions, allow_stdin)

File "/anaconda3/lib/python3.6/site-packages/ipykernel/ipkernel.py", line 208, in do_execute

res = shell.run_cell(code, store_history=store_history, silent=silent)

File "/anaconda3/lib/python3.6/site-packages/ipykernel/zmqshell.py", line 537, in run_cell

return super(ZMQInteractiveShell, self).run_cell(*args, **kwargs)

File "/anaconda3/lib/python3.6/site-packages/IPython/core/interactiveshell.py", line 2662, in run_cell

raw_cell, store_history, silent, shell_futures)

File "/anaconda3/lib/python3.6/site-packages/IPython/core/interactiveshell.py", line 2785, in _run_cell

interactivity=interactivity, compiler=compiler, result=result)

File "/anaconda3/lib/python3.6/site-packages/IPython/core/interactiveshell.py", line 2903, in run_ast_nodes

if self.run_code(code, result):

File "/anaconda3/lib/python3.6/site-packages/IPython/core/interactiveshell.py", line 2963, in run_code

exec(code_obj, self.user_global_ns, self.user_ns)

File "", line 61, in

toy1 = ToyNet(1, 50, 100, 50)

File "", line 19, in init

self.model.add(Dense(self.layer_1_nodes, input_dim=9, activation='relu', name='layer_1'))

File "/anaconda3/lib/python3.6/site-packages/keras/engine/sequential.py", line 160, in add

name=layer.name + '_input')

File "/anaconda3/lib/python3.6/site-packages/keras/engine/input_layer.py", line 178, in Input

input_tensor=tensor)

File "/anaconda3/lib/python3.6/site-packages/keras/legacy/interfaces.py", line 91, in wrapper

return func(*args, **kwargs)

File "/anaconda3/lib/python3.6/site-packages/keras/engine/input_layer.py", line 87, in init

name=self.name)

File "/anaconda3/lib/python3.6/site-packages/keras/backend/tensorflow_backend.py", line 517, in placeholder

x = tf.placeholder(dtype, shape=shape, name=name)

File "/anaconda3/lib/python3.6/site-packages/tensorflow/python/ops/array_ops.py", line 1734, in placeholder

return gen_array_ops.placeholder(dtype=dtype, shape=shape, name=name)

File "/anaconda3/lib/python3.6/site-packages/tensorflow/python/ops/gen_array_ops.py", line 4924, in placeholder

"Placeholder", dtype=dtype, shape=shape, name=name)

File "/anaconda3/lib/python3.6/site-packages/tensorflow/python/framework/op_def_library.py", line 787, in _apply_op_helper

op_def=op_def)

File "/anaconda3/lib/python3.6/site-packages/tensorflow/python/framework/ops.py", line 3414, in create_op

op_def=op_def)

File "/anaconda3/lib/python3.6/site-packages/tensorflow/python/framework/ops.py", line 1740, in init

self._traceback = self._graph._extract_stack() # pylint: disable=protected-access

InvalidArgumentError (see above for traceback): You must feed a value for placeholder tensor 'layer_1_input' with dtype float and shape [?,9]

[[Node: layer_1_input = Placeholderdtype=DT_FLOAT, shape=[?,9], _device="/job:localhost/replica:0/task:0/device:CPU:0"]]

The Data

For sanity's sake I've only included a short sample of each training and testing data below.

Training data ("sales_data_training_scaled.csv")

critic_rating,is_action,is_exclusive_to_us,is_portable,is_role_playing,is_sequel,is_sports,suitable_for_kids,total_earnings,unit_price
0.4999999999999999,1.0,1.0,1.0,0.0,1.0,0.0,1.0,0.7991793127668619,1.0
0.16666666666666663,0.0,0.0,0.0,1.0,1.0,0.0,0.0,0.15750170976506905,1.0
0.4999999999999999,0.0,0.0,0.0,0.0,1.0,1.0,0.0,0.18970444169239015,1.0
0.6666666666666666,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.39223304559989647,0.0
0.0,1.0,0.0,1.0,0.0,1.0,0.0,0.0,0.21546366980277626,1.0
0.4999999999999999,1.0,0.0,1.0,0.0,0.0,0.0,1.0,0.2675699155283636,1.0
0.6666666666666666,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.2418106874179775,1.0
0.4999999999999999,1.0,1.0,1.0,0.0,1.0,0.0,0.0,0.7090183175911721,1.0
0.6666666666666666,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.4385279384854254,1.0
0.16666666666666663,0.0,1.0,0.0,1.0,1.0,0.0,1.0,0.3957893569434946,1.0
0.9999999999999999,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.24197334614886973,0.0
0.6666666666666666,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.33607142197001905,1.0
0.4999999999999999,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.26054601578529046,1.0
0.6666666666666666,0.0,0.0,1.0,1.0,1.0,0.0,0.0,0.3501229182455038,1.0
0.8333333333333334,0.0,1.0,1.0,0.0,1.0,1.0,0.0,0.39457681004047984,0.0
0.6666666666666666,0.0,0.0,0.0,0.0,1.0,1.0,0.0,0.2248313339864328,1.0
0.4999999999999999,0.0,0.0,1.0,0.0,1.0,1.0,1.0,0.28864900833625995,1.0
0.4999999999999999,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.05268664165172547,0.0
0.9999999999999999,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.24431711058945305,0.0
0.16666666666666663,1.0,0.0,1.0,0.0,1.0,0.0,0.0,0.2740097225559601,1.0
0.33333333333333337,0.0,0.0,0.0,1.0,1.0,0.0,0.0,0.20141217352729157,1.0
0.4999999999999999,0.0,1.0,0.0,1.0,1.0,0.0,0.0,0.2802240254339107,0.0
0.16666666666666663,0.0,1.0,0.0,1.0,1.0,0.0,1.0,0.4069129960629193,1.0
0.6666666666666666,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.21487957708729966,1.0
0.4999999999999999,1.0,0.0,1.0,0.0,1.0,0.0,1.0,0.4250642317147557,1.0
0.4999999999999999,0.0,0.0,1.0,0.0,1.0,1.0,1.0,0.28513336167538494,1.0
0.33333333333333337,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.40075044823570727,0.5
0.4999999999999999,1.0,0.0,0.0,0.0,1.0,0.0,1.0,0.18811482227685256,0.0
0.33333333333333337,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.1428661207741077,1.0
0.8333333333333334,1.0,0.0,1.0,0.0,0.0,0.0,1.0,0.27292286649045305,0.5
0.16666666666666663,0.0,0.0,0.0,1.0,1.0,0.0,0.0,0.16160144914142066,1.0
0.4999999999999999,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.5831426406166245,1.0
0.6666666666666666,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.18850668194672926,0.0
0.8333333333333334,0.0,1.0,0.0,1.0,1.0,0.0,0.0,0.6118297258830706,1.0
0.9999999999999999,0.0,0.0,0.0,1.0,1.0,0.0,0.0,0.18928670449714424,0.0
0.4999999999999999,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.13759449917746436,1.0
0.9999999999999999,0.0,1.0,0.0,0.0,1.0,1.0,0.0,0.34539842147095245,0.0
0.16666666666666663,0.0,0.0,0.0,1.0,1.0,0.0,1.0,0.13583113066301916,0.5
0.9999999999999999,0.0,1.0,1.0,0.0,1.0,1.0,1.0,0.48629415352766125,0.0
0.9999999999999999,0.0,1.0,0.0,1.0,1.0,0.0,1.0,0.7500009241973347,1.0
0.0,0.0,0.0,0.0,1.0,1.0,0.0,0.0,0.04253895491765401,0.0
0.4999999999999999,0.0,0.0,0.0,1.0,1.0,0.0,0.0,0.11630468937727585,0.0
0.16666666666666663,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.2775253692168352,1.0
0.4999999999999999,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.10216816694700652,0.5
0.4999999999999999,0.0,1.0,0.0,0.0,1.0,1.0,0.0,0.23650949150662648,0.0
0.33333333333333337,1.0,0.0,1.0,0.0,1.0,0.0,0.0,0.18031089998336447,0.0
0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.05621337868061589,1.0
0.9999999999999999,1.0,1.0,1.0,0.0,1.0,0.0,0.0,0.7949538825530027,0.5
0.4999999999999999,1.0,0.0,0.0,0.0,1.0,0.0,1.0,0.18538289495573096,0.0
0.8333333333333334,0.0,0.0,0.0,0.0,1.0,1.0,0.0,0.2587900408495222,1.0
0.16666666666666663,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.08373227851610877,1.0
0.9999999999999999,1.0,1.0,1.0,0.0,0.0,0.0,1.0,0.7447329993900298,1.0
0.16666666666666663,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.20902386277517976,1.0
0.6666666666666666,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.18850668194672926,0.0
0.16666666666666663,0.0,0.0,1.0,0.0,1.0,1.0,0.0,0.12509565442413267,0.5
0.6666666666666666,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.3313875898781908,1.0
0.33333333333333337,1.0,0.0,1.0,0.0,1.0,0.0,1.0,0.3717861037688767,1.0
0.0,0.0,0.0,0.0,1.0,1.0,0.0,1.0,0.1434502134895843,1.0
0.33333333333333337,1.0,1.0,1.0,0.0,1.0,0.0,0.0,0.6329051219016284,1.0
0.8333333333333334,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.727753645958485,1.0
0.6666666666666666,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.15144267203933381,0.5
0.8333333333333334,1.0,1.0,1.0,0.0,1.0,0.0,0.0,0.8846601726400621,1.0
0.8333333333333334,0.0,0.0,0.0,1.0,1.0,0.0,0.0,0.30738433670357296,1.0

Testing data ("sales_data_test_scaled.csv")

critic_rating,is_action,is_exclusive_to_us,is_portable,is_role_playing,is_sequel,is_sports,suitable_for_kids,total_earnings,unit_price
0.4999999999999999,1.0,0.0,1.0,0.0,1.0,0.0,0.0,0.3747139609249367,1.0
0.8333333333333334,0.0,0.0,0.0,0.0,1.0,1.0,0.0,0.19242527864549636,0.5
0.33333333333333337,0.0,0.0,0.0,0.0,1.0,1.0,0.0,0.11485185116726125,0.5
0.8333333333333334,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.14245208036820023,0.0
0.6666666666666666,1.0,0.0,1.0,0.0,1.0,0.0,1.0,0.4806824273118796,1.0
0.6666666666666666,0.0,0.0,0.0,1.0,1.0,0.0,0.0,0.13972015304707863,0.0
0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.11338792258923126,0.5
0.8333333333333334,0.0,0.0,1.0,1.0,1.0,0.0,1.0,0.44906748488937354,1.0
0.4999999999999999,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.06127428328496702,0.0
0.16666666666666663,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.20668009833459638,1.0
0.8333333333333334,1.0,0.0,1.0,0.0,1.0,0.0,0.0,0.4777545701558197,1.0
0.4999999999999999,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.13232657437015954,1.0
0.4999999999999999,0.0,0.0,0.0,1.0,1.0,0.0,0.0,0.17925361823256503,0.5
0.6666666666666666,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.16335742407718895,1.0
0.4999999999999999,0.0,0.0,0.0,1.0,1.0,0.0,0.0,0.23946692297739414,1.0
0.6666666666666666,0.0,0.0,0.0,1.0,1.0,0.0,1.0,0.31206816879540117,1.0
0.4999999999999999,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.2285281233248923,0.5
0.33333333333333337,1.0,0.0,0.0,0.0,1.0,0.0,1.0,0.29274505092327313,1.0
0.16666666666666663,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.3480564130053049,0.5
0.9999999999999999,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.42799208887081575,1.0
0.6666666666666666,0.0,0.0,0.0,0.0,1.0,1.0,0.0,0.2248313339864328,1.0
0.8333333333333334,0.0,0.0,0.0,0.0,0.0,1.0,1.0,0.1280235115801926,0.5
0.16666666666666663,0.0,1.0,0.0,1.0,1.0,0.0,1.0,0.40164507125561455,1.0
0.6666666666666666,1.0,0.0,0.0,0.0,1.0,0.0,1.0,0.2963420269495943,0.5
0.8333333333333334,1.0,0.0,0.0,0.0,1.0,0.0,1.0,0.2486090830114046,0.0
0.8333333333333334,0.0,0.0,0.0,0.0,1.0,1.0,1.0,0.28923310105173655,1.0
0.0,0.0,0.0,0.0,1.0,1.0,0.0,1.0,0.06283432838579693,0.0
0.4999999999999999,1.0,0.0,1.0,0.0,1.0,0.0,0.0,0.29536607456424097,0.5
0.4999999999999999,0.0,0.0,0.0,1.0,1.0,0.0,1.0,0.2693258904641319,1.0
0.0,1.0,0.0,1.0,0.0,0.0,0.0,1.0,0.10460804791038984,0.5
0.4999999999999999,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.4651485185116726,0.5