Advertisement
Guest User

Untitled

a guest
Feb 19th, 2020
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.18 KB | None | 0 0
  1. #!/usr/bin/env python3
  2.  
  3. from __future__ import absolute_import, division, print_function
  4.  
  5. import tensorflow as tf
  6. from tensorflow.keras import layers
  7. import numpy as np
  8. import nibabel
  9. import os
  10. import sys
  11. import matplotlib.pyplot as plt
  12. from tensorflow.keras.layers import Dense, Dropout, Activation, Flatten
  13. from tensorflow.keras.layers import ZeroPadding3D, Conv3D, MaxPooling3D, BatchNormalization
  14. import h5py
  15. from sklearn.model_selection import train_test_split
  16.  
  17. #if not tf.executing_eagerly():
  18. #    tf.enable_eager_execution()
  19. #    print("executing eagerly")
  20.  
  21. print("loading shapes.h5")
  22. f = h5py.File('/media/data/hayashis/shapes.h5', 'r')
  23. x = f['x'][:]
  24. y = f['y'][:]
  25. class_names = f['class_names'][:]
  26. input_shape = f['input_shape'][:]
  27.    
  28. #split input into training and test
  29. #TODO - I should randomize this
  30. #split=int(len(x)*0.2)
  31. #x_test = x[0:split]
  32. #y_test = y[0:split]
  33. #x_train = x[split:]
  34. #y_train = y[split:]
  35. x_train, x_test, y_train, y_test = train_test_split(x,y,test_size=0.1,random_state=0)
  36.  
  37. print(["x_train", x_train.shape, "y_train", y_train.shape])
  38. print(["x_test", x_test.shape, "y_test", y_test.shape])
  39. print(["class_name.shape",class_names.shape])
  40.  
  41. class_size = len(class_names)
  42.    
  43. #build model
  44. model = tf.keras.models.Sequential()
  45.  
  46. model.add(Conv3D(8,kernel_size=5,activation='relu',input_shape=input_shape))
  47. model.add(Conv3D(16,kernel_size=5,activation='relu'))
  48. model.add(MaxPooling3D(pool_size=4))
  49. model.add(Dropout(0.3))
  50.  
  51. model.add(Conv3D(16,kernel_size=4,activation='relu'))
  52. model.add(Conv3D(16,kernel_size=4,activation='relu'))
  53. model.add(MaxPooling3D(pool_size=3))
  54. model.add(Dropout(0.3))
  55.  
  56. #model.add(BatchNormalization())
  57. model.add(Flatten())
  58.  
  59. #model.add(Dense(class_size, activation='relu'))
  60. #model.add(Dropout(0.4))
  61. model.add(Dense(len(class_names), activation='softmax'))
  62.  
  63. model.compile(loss='mean_squared_error', optimizer='adam', metrics=['accuracy'])
  64. model.summary()
  65.  
  66. print("fitting")
  67. model.fit(x_train, y_train, batch_size=64, epochs=8, verbose=1, validation_split=0.2)
  68. model.save('fitmodel.h5')
  69.  
  70. print("evaluating")
  71. score = model.evaluate(x_test, y_test)
  72. print('Test loss:', score[0])
  73. print('Test accuracy:', score[1])
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement