TensorFlow 2.x�i2.0�ȍ~�j�ł́A���f���̏��������������ꂽ���̂́A����ł�3��ނ�API�ŁA6�ʂ�̏��������ł���B����͏��S�ҁ`�������҂ɂ����߂́ASequential���f����Functional API�̏������A�S3�ʂ�ɂ��Đ�������B
���̋L���͉������ł��B����o�^�i�����j����ƑS�Ă������������܂��B
�@�O��܂ł̑S3���ł́A�j���[�����l�b�g���[�N�̎d�g�݂⋓����}���Ŏ����Ȃ���ATensorFlow�itf.keras�j�ɂ���{�I�Ȏ������@����������B���������ۂɂ́ATensorFlow�̏������͂��ꂾ���ł͂Ȃ��B
�@�傫�������āA���L��3��ނ����邱�Ƃ���2���Ő����ς݂ł���B
�@���Ȃ݂ɁASequential���f����Functional API�́u�錾�^�v���Ӗ����邽��Symbolic API�Ƃ��Ă�ASubclassing���f���́u���ߌ^�v���Ӗ����邽��Imperative API�Ƃ��Ă��B�錾�^�Ƃ́A���f���̃��C���[��錾�I����`���邱�Ɓi������gDefine-and-Run�h�j���w���A���ߌ^�Ƃ̓t�H���[�h�v���p�Q�[�V�����i���`�d�j�����s�t�H���[�h�p�X�𖽗ߓI�ɋL�q���邱�Ɓi������gDefine-by-Run�h�j���w���i���o�b�N�v���p�Q�[�V�����̃o�b�N���[�h�p�X�͎������������j�B
�@���A�q�ׂ�3��ނ̕��@�͑�܂��ɕ������ꍇ���BTensorFlow 2.x�i2.0�ȍ~�j�ɂ�����ŐV�̏������́A����ɍׂ���������ƁA���L��6��ނ�����i�ƕM�҂͔F�����Ă���j�B
�ySequential���f���z�i����j
�@ �i1�jtf.keras.models.Sequential�N���X���R���X�g���N�^�[���p�F �R���p�N�g�ŊȒP�ȏ������B�j���[�����l�b�g���[�N���w�т������S�҂ɂ͍ł��������ł���B��F�A�ڑ�2��
�@ �i2�jtf.keras.models.Sequential�I�u�W�F�N�g��add���\�b�h�Œlj��F �V���v�������A���_��̂��鏑�����B���S�Ҍ����B��L�̃R���X�g���N�^�[�ł͑Ή��ł��Ȃ��ꍇ�Ɏg�p
�yFunctional API�z�i����j
�@ �i3�jtf.keras.Model�N���X���R���X�g���N�^�[���p�F �_��ɋL�q�ł��邪�A�R�[�h�ʂ͑�����B���̃T�u�N���X���̕����A�R�[�h�����₷���B�������Ҍ����B�_������߂A�������m�ۂ������Ƃ��Ɏg�p
�ySubclassing���f���z�i����Ǝ��X��j
�@ �i4�jtf.keras.Model�N���X���T�u�N���X���F ���l�v�Z���C�u�����uNumPy�v���g���ċL�q����悤�Ȋ��o�ŋL�q�ł�����@�ŁA�_���g�����ɗD���B���C�u�����uPyTorch�v�ɂ��Ȃ�߂��L�q���\�Ȃ̂ŁA�����̃��C�u�������g�����Ȃ������l��ATensorFlow�����I�Ɏg�����Ȃ������������҈ȏ�ɂ͍ł��������ł���B����A�d�_�I�ɉ������
�@ �i5�jTensorFlow�ᐅ��API���J�X�^�������F ��L�̃T�u�N���X���̃��C���[�⊈�������^�������^�]�����Ȃǂ�Ǝ��̃R�[�h�ŏ������@�BKeras�̊�{�@�\�����ł͑���Ȃ��㋉�Ҍ����B���X��ʼn������
�y�쐬�ς�Estimators�z�i���X��j
�@ �i6�jtf.estimator.Estimator�������쐬�ς݃��f���iPre-made Estimators�j�̗��p�F �ړI���Ƃɗp�ӂ��ꂽDNNRegressor�i��A�j�^DNNClassifier�i���ށj�N���X�Ȃǂ��g���ă��f�����`�ł��邪�A�Z�ʂ������Ȃ��̂ɁA�R�[�h�������Ȃ�ꍇ������B�݊����̂��߂Ɏc����Ă���i�������I�ɔp�~�����\���������j�̂Ŕ�
�@���Ȃ݂�TensorFlow 2.0�ȍ~�ł́AKeras�itf.keras�j���u�W���̍�����API�v�ƂȂ��Ă���B�쐬�ς�Estimators��������API�ł͂��邪�A��L�̒ʂ�A�V���ȃ��f���쐬�ł͌����Ɂu���v�ƂȂ��Ă���̂ŁAtf.keras��TensorFlow�ŗB��̍�����API�ł���B�܂��A�i5�j�́u�J�X�^�������v���A���������^�������^�]�����Ȃ�TensorFlow�̒ᐅ��API���g���ċL�q���邪�A���̃��f����C���[�́i��{�I�Ɂjtf.keras�̂��̂��T�u�N���X�����Ďg�����ƂɂȂ�i���T�u�N���X�����Ȃ��Ŏ������邱�Ƃ��s�\�ł͂Ȃ����A��Ԃ��l����Ƃ����߂ł��Ȃ��j�B�܂�ATensorFlow 2.0�̏������͑S�āAtf.keras���ǂ�������Ŋ��p����Ƃ������ƂɂȂ�B
�@6�ʂ��������������ƁA�o���邱�Ƃ������āA�����������₷�����낤�B�M�҂Ƃ��ẮA���S�҂́i1�j���A�j���[�����l�b�g���[�N�𗝉������������҂ɂ́i4�j�������߂������B�������A�i4�j�ɂ���ƃg���[�h�I�t�Ńf�����b�g��������B��̓I�ɂ́A
�Ƃ��������Ƃ�����_�ɒ��ӂ��K�v���B����ł����������l����Ɓi4�j�������߂ł���B
�@�{�e�ł͏�L��6�ʂ���A���̂悤�ɕ����A
�u��4��@�m���Ă�!?�@TensorFlow 2.0�ŐV�̏���������i�������Ҍ����j�v�c�c�i1�j�`�i3�j
�u��5��@�����߂́ATensorFlow 2.0�ŐV�̏���������i�G�L�X�p�[�g�����j�v�c�c�i4�j
�u��6��@�J�X�^�}�C�Y���邽�߂́ATensorFlow 2.0�ŐV�̏����������v�c�c�i5�j�`�i6�j
�̑S3��Ő�������B
�@�Q�l�܂łɁATensorFlow�S�̂̋@�\�\���}�������Ă������B���̑S�̂́uTensorFlow�̃G�R�V�X�e���v�Ƃ��Ă�Ă���B
�@�{�A�ڂł́APython�i�o�[�W����3.6�j�ƁA�f�B�[�v���[�j���O�̃��C�u�����uTensorFlow�v�̍ŐV��2.1�𗘗p����B�܂��A�J������Google Colaboratory�i�ȉ��AColab�j��p����B
�@TensorFlow�̍ŐV�o�[�W�����́A���X�g0-1�̃R�}���h�ŃC���X�g�[���ł���B
# Google Colab�ōŐV��2.x���g���ꍇ�iColab��p�j
%tensorflow_version 2.x
# �ŐV�o�[�W�����ɃA�b�v�O���[�h����ꍇ
!pip install --upgrade tensorflow
# �o�[�W���������ăA�b�v�O���[�h����ꍇ
!pip install --upgrade tensorflow===2.1.0
# �ŐV�o�[�W�������C���X�g�[������ꍇ
!pip install tensorflow
# �o�[�W���������ăC���X�g�[������ꍇ
!pip install tensorflow===2.1.0
�@�O������̒ʂ��Google Colab���g���ꍇ�́A�u%tensorflow_version 2.x�v�Ƃ����}�W�b�N�R�}���h���g�p���Ăق����i��pip�R�}���h��p�����C���X�g�[������TPU�����삵�Ȃ��A�Ƃ��������������߁j�B���̃}�W�b�N�R�}���h�����s���āuTensorFlow 2.x selected.�v�ƕ\��������OK���B�����uTensorFlow is already loaded. Please restart the runtime to change versions.�v�ƕ\�������ꍇ�́A���j���[�o�[����m�����^�C���n�|�m�����^�C�����ċN���n�����s������ŁA�ēx�A�}�W�b�N�R�}���h�̎��s���ʂ��m���߂Ăق����B
�@����̓��̓f�[�^�ɂ́A���W�_�iX���W�AY���W�j�̃f�[�^���g���B���W�_�̌��ʂ��F�i1.0�j���I�����W�F�i-1.0�j�����w�K���āA�\������ł���悤�ɂ���B��1��Ŏg�����f�[�^�Ɠ����ł��邽�߁A�f�[�^�̎擾�R�[�h�̐����͊�������B
�@����͂�����̏������ł��A���̂悤�ȃf�B�[�v�j���[�����l�b�g���[�N�̃��f����v���邱�ƂƂ���B
�@������萔�Ƃ��āA���X�g0-2�̂悤�ɒ�`����Ƃ��悤�B
# ���C�u�����uTensorFlow�v��tensorflow�p�b�P�[�W���utf�v�Ƃ����ʖ��ŃC���|�[�g
import tensorflow as tf
from tensorflow.keras import layers # �u���C���[�Y�v���W���[���̃C���|�[�g
# �萔�i���f����`���ɕK�v�ƂȂ鐔�l�j
INPUT_FEATURES = 2 # ���́i�����j�̐��F 2
LAYER1_NEURONS = 3 # �j���[�����̐��F 3
LAYER2_NEURONS = 3 # �j���[�����̐��F 3
OUTPUT_RESULTS = 1 # �o�͌��ʂ̐��F 1
�@tf.keras�Ń��f����v����ۂɁA���C���[�p��tf.keras.layers���O��Ԃ͂悭�g���̂ł����ŃC���|�[�g���Ă������ƂƂ���B
�@����ɁA�]�����Ƃ���def tanh_accuracy(y_true, y_pred)�Ƃ��������`���Ă������ƂƂ��邪�A��3���́u���X�g5-5�@���𗦁i���x�j�̃J�X�^���w�W�v�ʼn���ς݂Ȃ̂Ő�������������B
�@����ł͏������������̂ŁA�܂��͏������i1�j���珇�ɁA����͏������i3�j�܂ł�������悤�B
�@���̕��@�́A��2���́u���X�g4-1�@�j���[�����̃��f���v�v�Ɓu���X�g4-2�@�j���[�����l�b�g���[�N�̃��f���v�v�Ŋ��ɐ����ς݂ł���B�S�������R�[�h���Ɩʔ����Ȃ��Ǝv���̂ŁA���s�قǃR�[�h��lj������B
model = tf.keras.models.Sequential([ # ���f���̐���
# �B��w�F1�ڂ̃��C���[
layers.Dense( # �S�����w
input_shape=(INPUT_FEATURES,), # ���͂̌`��i�����͑w�j
name='layer1', # �\���p�ɖ��O�t��
kernel_initializer='glorot_uniform', # �d���̏������i��l���z�̃����_���l�j
bias_initializer='zeros', # �o�C�A�X�̏������i0�j
units=LAYER1_NEURONS, # ���j�b�g�̐�
activation='tanh'), # ��������
# �B��w�F2�ڂ̃��C���[
layers.Dense( # �S�����w
name='layer2', # �\���p�ɖ��O�t��
kernel_initializer='glorot_uniform', # �d���̏�����
bias_initializer='zeros', # �o�C�A�X�̏�����
units=LAYER2_NEURONS, # ���j�b�g�̐�
activation='tanh'), # ��������
# �o�͑w
layers.Dense( # �S�����w
name='layer_out', # �\���p�ɖ��O�t��
kernel_initializer='glorot_uniform', # �d���̏�����
bias_initializer='zeros', # �o�C�A�X�̏�����
units=OUTPUT_RESULTS, # ���j�b�g�̐�
activation='tanh'), # ��������
], name='sequential_constructor' # ���f���ɂ����O�t��
)
# �ȏ�Ń��f���v�͊���
model.summary() # ���f���̓��e���o��
�@�O��܂ł͏d�݂�o�C�A�X�Ƃ������p�����[�^�[�̏�������Keras�ɔC���Ă����B���̏ꍇ�i�܂�f�t�H���g�ł́j�A�d�݂́uglorot_uniform�v�iXavier Glorot�̈�l���z�ɂ����郉���_���l�F �ŏ��`�ő�͈̔͂���̓��j�b�g���Əo�̓��j�b�g�����玩���Z�o�j�ɁA�o�C�A�X�́uzero�v�i0�j�ɂȂ�B
�@����́Atf.keras.layers.Dense�N���X�̃R���X�g���N�^�[�i�����ɂ�__init__()���\�b�h�j�̈���kernel_initializer��'glorot_uniform'�Ƃ����d�݂��A����bias_initializer��'zeros'�Ƃ����o�C�A�X����Ŏw�肵�Ă���i���Ȃ��ȍ~�̃T���v���ł́A�Z�����邽�߁Akernel_initializer�^bias_initializer�����̋L�ڂ͏ȗ�����j�B�p�����[�^�[�̏��������s���C�j�V�����C�U�[�iinitializer�j�Ƃ��ẮA�ȉ��̂��̂�������Ŏw��ł���B
�@���ƁA�S�̓I�Ɋename�����ɖ��O���w�肵�Ă���B����ɂ��Amodel.summary()���\�b�h�̏o�͂͐}1-1�̂悤�ɁA���f����C���[�̖��O��������₷���Ȃ�B
�@�܂��A���X�g1-2�̃R�[�h�i���R�[�h���e�̐����͊����j�ɂ�胂�f���\���}��\������ƁA�}1-2�̂悤�ɕ\�������B����ɂ��w�肵�����O���\������Ă��邱�Ƃ������邾�낤�B
tf.keras.utils.plot_model(model, show_shapes=True, show_layer_names=True, to_file='model.png')
from IPython.display import Image
Image(retina=False, filename='model.png')
�@��قǁAkernel_initializer�^bias_initializer�ɂ͕�����Ŏw�肵�����A���������J�X�^�}�C�Y�������ꍇ�����邾�낤�B�Ⴆ��'glorot_uniform'�ł͂Ȃ��A�����ʼn����Ə�����w�肵����l���z�Ń����_���l����肽���ꍇ�́Atf.keras.RandomUniform�N���X���g���ăC�j�V�����C�U�[��Ǝ��ɍ쐬����悢�i���X�g1-3�j�B
random_init = tf.keras.initializers.RandomUniform(
minval=-1.0, maxval=1.0) # �����Ə�����w�肵����l���z�Ń����_���l
�@��������Đ��������C�j�V�����C�U�[��kernel_initializer=random_init�̂悤�Ɏw�肷�邾���ł���B
�@���f����v���ăC���X�^���X��������́A��3���Ɠ��l�Ɋw�K���@��ݒ肵�A�w�K���A���_�i�\���j����悢�i���X�g1-4�B������͈Ȍ�������Ȃ̂ŁA�R�����g�A�E�g������ԂŁA�e�u�������v�R�[�h�̍Ō�ɍڂ��Ă����j�B�܂��Aplayground-data���C�u��������̌P���p�f�[�^�Ɛ��x���ؗp�f�[�^�i�ȉ��̃R�[�h�ł́AX_train�ϐ��Ay_train�ϐ��Ȃǂɑ�����Ă���j�̎擾�ɂ��ẮA�`���Ŏ�����Google Colab�܂���GitHub�̃R�[�h���Q�Ƃ��Ăق����B
# �w�K���@��ݒ肵�A�w�K���A���_�i�\���j����
model.compile(tf.keras.optimizers.SGD(learning_rate=0.03), 'mean_squared_error', [tanh_accuracy])
model.fit(X_train, y_train, validation_data=(X_valid, y_valid), batch_size=15, epochs=100, verbose=1)
model.predict([[0.1,-0.2]])
�@���Ȃ݂ɁA���f���̏����������łȂ��A�w�K�Ɋւ���R�[�h���A���L�̂悤�ɏ������Ҍ����ƃG�L�X�p�[�g�����ɕ������B
�@��قǂ�model�Ƃ����ϐ����Ń��f���������B���������r���₷���悤�ɁA�ȍ~��model�Ƃ����ϐ������g���B�������f�����폜���ă��Z�b�g�������ꍇ�́A���X�g1-5�̃R�[�h�����s���Ăق����i���R�[�h���ɋL�ڂ����u�v�Z�O���t�v�Ƃ́A�v�Z�̉ߒ��i�f�[�^�t���[�j��\�������O���t�̂��ƂŁA���f����v�������Ƃɂ�胉�C�u���������Ŏ����I�ɍ\�z����Ă���BTensorBoard�Ƃ����c�[���ɂ���ăf�[�^�t���[�O���t�����o�I�Ɋm�F�ł���j�B
tf.keras.backend.clear_session() # �v�Z�O���t��j������
del model # �ϐ����폜����
�@�ȏ�ŁA�������i1�j�̐������I���Ƃ���B���̃y�[�W�ł́A�������i2�j�Ɓi3�j�ɂ��Đ�������B
Copyright© Digital Advantage Corp. All Rights Reserved.