Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- """
- Working on an assignment, trying to build from an example Netanel Shimoni showed during the TLV DL Bootcam meetup #2
- (breast cancer histology). It is catagorizing a set of 150*150 RGB images, I want to use it on 50*50 B/W images.
- Posting Nati's example and what I tried to in the comments below.
- """
- # Example (runs on my machine)
- def get_model():
- inp = Input(shape=(50,50,3))
- x=BatchNormalization()(inp)
- x=Conv2D(64,kernel_size=3,activation='relu')(x)
- x=MaxPool2D(pool_size=2)(x)
- x = Dropout(0.3)(x)
- x=Conv2D(64,kernel_size=3,activation='relu')(x)
- x = Dropout(0.5)(x)
- x=MaxPool2D(pool_size=2)(x)
- x=Flatten()(x)
- x=Dense(2,activation='relu')(x)
- model=Model(inp,x)
- model.summary()
- model.compile(loss='categorical_crossentropy',optimizer='adam',metrics=['accuracy'])
- return model
- #
- model = get_model()
- saveModel = model.fit(X,to_categorical(Y),validation_split=0.2, batch_size=5,epochs=3)
- ##############################################################################################
- My code:
- import numpy as np
- import pandas as pd
- import matplotlib.pyplot as plt
- from keras.layers import *
- from keras.models import *
- from keras.utils import to_categorical
- def get_model():
- inp = Input(shape=(50,50))
- x=BatchNormalization()(inp)
- x=Conv2D(32,kernel_size=2,activation='relu')(x)
- x=MaxPool2D(pool_size=2)(x)
- x = Dropout(0.3)(x)
- x=Conv2D(64,kernel_size=3,activation='relu')(x)
- x = Dropout(0.5)(x)
- x=MaxPool2D(pool_size=2)(x)
- x=Flatten()(x)
- x=Dense(2,activation='relu')(x)
- model=Model(inp,x)
- model.summary()
- model.compile(loss='categorical_crossentropy',optimizer='adam',metrics=['accuracy'])
- return model
- model = get_model()
- saveModel = model.fit(allImages,to_categorical(Y),validation_split=0.2, batch_size=5,epochs=3)
- #####################################################################################################
- I also tried adding a dummy dimension to go from (5000, 50, 50) to (5000, 50, 50, 1) using:
- allImages = np.expand_dims(allImages, axis=3)
- and in the model made the following change:
- inp = Input(shape=(50,50,1))
- Then I got this error message:
- _________________________
- _________________________________________________________________
- Layer (type) Output Shape Param #
- =================================================================
- input_20 (InputLayer) (None, 50, 50, 1) 0
- _________________________________________________________________
- batch_normalization_18 (Batc (None, 50, 50, 1) 4
- _________________________________________________________________
- conv2d_24 (Conv2D) (None, 49, 49, 32) 160
- _________________________________________________________________
- max_pooling2d_9 (MaxPooling2 (None, 24, 24, 32) 0
- _________________________________________________________________
- dropout_10 (Dropout) (None, 24, 24, 32) 0
- _________________________________________________________________
- conv2d_25 (Conv2D) (None, 22, 22, 64) 18496
- _________________________________________________________________
- dropout_11 (Dropout) (None, 22, 22, 64) 0
- _________________________________________________________________
- max_pooling2d_10 (MaxPooling (None, 11, 11, 64) 0
- _________________________________________________________________
- flatten_5 (Flatten) (None, 7744) 0
- _________________________________________________________________
- dense_7 (Dense) (None, 2) 15490
- =================================================================
- Total params: 34,150
- Trainable params: 34,148
- Non-trainable params: 2
- _________________________________________________________________
- Train on 4000 samples, validate on 1000 samples
- Epoch 1/9
- ---------------------------------------------------------------------------
- InternalError Traceback (most recent call last)
- C:\ProgramData\Anaconda2\envs\tensorflow_windows\lib\site-packages\tensorflow\python\client\session.py in _do_call(self, fn, *args)
- 1326 try:
- -> 1327 return fn(*args)
- 1328 except errors.OpError as e:
- C:\ProgramData\Anaconda2\envs\tensorflow_windows\lib\site-packages\tensorflow\python\client\session.py in _run_fn(feed_dict, fetch_list, target_list, options, run_metadata)
- 1311 return self._call_tf_sessionrun(
- -> 1312 options, feed_dict, fetch_list, target_list, run_metadata)
- 1313
- C:\ProgramData\Anaconda2\envs\tensorflow_windows\lib\site-packages\tensorflow\python\client\session.py in _call_tf_sessionrun(self, options, feed_dict, fetch_list, target_list, run_metadata)
- 1419 self._session, options, feed_dict, fetch_list, target_list,
- -> 1420 status, run_metadata)
- 1421
- C:\ProgramData\Anaconda2\envs\tensorflow_windows\lib\site-packages\tensorflow\python\framework\errors_impl.py in __exit__(self, type_arg, value_arg, traceback_arg)
- 515 compat.as_text(c_api.TF_Message(self.status.status)),
- --> 516 c_api.TF_GetCode(self.status.status))
- 517 # Delete the underlying status object from memory otherwise it stays alive
- InternalError: GPU sync failed
- During handling of the above exception, another exception occurred:
- InternalError Traceback (most recent call last)
- <ipython-input-59-a91f5bdc1a64> in <module>()
- 21 return model
- 22 model = get_model()
- ---> 23 saveModel = model.fit(allImages,to_categorical(Y),validation_split=0.2, batch_size=5,epochs=9)
- C:\ProgramData\Anaconda2\envs\tensorflow_windows\lib\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)
- 1703 initial_epoch=initial_epoch,
- 1704 steps_per_epoch=steps_per_epoch,
- -> 1705 validation_steps=validation_steps)
- 1706
- 1707 def evaluate(self, x=None, y=None,
- C:\ProgramData\Anaconda2\envs\tensorflow_windows\lib\site-packages\keras\engine\training.py in _fit_loop(self, f, ins, out_labels, batch_size, epochs, verbose, callbacks, val_f, val_ins, shuffle, callback_metrics, initial_epoch, steps_per_epoch, validation_steps)
- 1233 ins_batch[i] = ins_batch[i].toarray()
- 1234
- -> 1235 outs = f(ins_batch)
- 1236 if not isinstance(outs, list):
- 1237 outs = [outs]
- C:\ProgramData\Anaconda2\envs\tensorflow_windows\lib\site-packages\keras\backend\tensorflow_backend.py in __call__(self, inputs)
- 2474 feed_dict[tensor] = value
- 2475 fetches = self.outputs + [self.updates_op] + self.fetches
- -> 2476 session = get_session()
- 2477 updated = session.run(fetches=fetches, feed_dict=feed_dict,
- 2478 **self.session_kwargs)
- C:\ProgramData\Anaconda2\envs\tensorflow_windows\lib\site-packages\keras\backend\tensorflow_backend.py in get_session()
- 190 # not already marked as initialized.
- 191 is_initialized = session.run(
- --> 192 [tf.is_variable_initialized(v) for v in candidate_vars])
- 193 uninitialized_vars = []
- 194 for flag, v in zip(is_initialized, candidate_vars):
- C:\ProgramData\Anaconda2\envs\tensorflow_windows\lib\site-packages\tensorflow\python\client\session.py in run(self, fetches, feed_dict, options, run_metadata)
- 903 try:
- 904 result = self._run(None, fetches, feed_dict, options_ptr,
- --> 905 run_metadata_ptr)
- 906 if run_metadata:
- 907 proto_data = tf_session.TF_GetBuffer(run_metadata_ptr)
- C:\ProgramData\Anaconda2\envs\tensorflow_windows\lib\site-packages\tensorflow\python\client\session.py in _run(self, handle, fetches, feed_dict, options, run_metadata)
- 1138 if final_fetches or final_targets or (handle and feed_dict_tensor):
- 1139 results = self._do_run(handle, final_targets, final_fetches,
- -> 1140 feed_dict_tensor, options, run_metadata)
- 1141 else:
- 1142 results = []
- C:\ProgramData\Anaconda2\envs\tensorflow_windows\lib\site-packages\tensorflow\python\client\session.py in _do_run(self, handle, target_list, fetch_list, feed_dict, options, run_metadata)
- 1319 if handle is None:
- 1320 return self._do_call(_run_fn, feeds, fetches, targets, options,
- -> 1321 run_metadata)
- 1322 else:
- 1323 return self._do_call(_prun_fn, handle, feeds, fetches)
- C:\ProgramData\Anaconda2\envs\tensorflow_windows\lib\site-packages\tensorflow\python\client\session.py in _do_call(self, fn, *args)
- 1338 except KeyError:
- 1339 pass
- -> 1340 raise type(e)(node_def, op, message)
- 1341
- 1342 def _extend_graph(self):
- InternalError: GPU sync failed
Add Comment
Please, Sign In to add comment