The accuracy do not increase when I train model

indent preformatted text by 4 spaces
import numpy as np
import tensorflow as tf
from PIL import Image
from tensorflow.keras import Model,Sequential
from tensorflow.keras.layers import   Conv2D,MaxPooling2D,Flatten,Dense,Dropout,
from tensorflow.keras.applications.vgg16 import VGG16
from sklearn.model_selection import train_test_split
from keras_preprocessing.image import ImageDataGenerator
from PIL import Image
import os.path
import glob
import random

image_path=glob.glob('gar/*/*.jpg')

label_type=[image_p.split('\\')[1] for image_p in image_path]
labels=np.unique(label_type)

index_to_label=dict((l,n)for l,n in enumerate(labels))
label_to_index=dict((n,l)for l,n in index_to_label.items())


all_labels=[label_to_index.get(name)for name in label_type]


random_index=np.random.permutation(len(image_path))

image_path=np.array(image_path)[random_index]
all_labels=np.array(all_labels)[random_index]


sep=int(len(image_path)*0.7)
train_image_path=image_path[:sep]
train_y=all_labels[:sep]
test_image_path=image_path[sep:]
test_y=all_labels[sep:]

train=tf.data.Dataset.from_tensor_slices((train_image_path,train_y))
test=tf.data.Dataset.from_tensor_slices((test_image_path,test_y))

def load_pic(path,label):
    image=tf.io.read_file(path)
    image=tf.image.decode_jpeg(image,channels=3)
    image=tf.image.resize(image,[256,256])
    image=tf.cast(image,tf.float32)
    image=image/255
    return image,label
train=train.map(load_pic)
train=train.shuffle(1000).batch(64)
test=test.map(load_pic)
test=test.shuffle(1000).batch(64)
def get_model():
    gmodel=Sequential([

        Conv2D(64, (3, 3), activation='relu', input_shape=(256,256,3)),
        Conv2D(64,(3,3),activation='relu'),
        MaxPooling2D((1,1),strides=2,padding='same'),
        Conv2D(128, (3, 3), activation='relu'),
        Conv2D(128, (3, 3), activation='relu'),
        MaxPooling2D((1,1), strides=2, padding='same'),
        Conv2D(256, (3, 3), activation='relu'),
        Conv2D(256, (3, 3), activation='relu'),
        MaxPooling2D((1,1), strides=2, padding='same'),
        Conv2D(512, (3, 3), activation='relu'),
        Conv2D(512, (3, 3), activation='relu'),
        MaxPooling2D((1,1), strides=2, padding='same'),
        Conv2D(512, (3, 3), activation='relu'),
        Conv2D(512, (3, 3), activation='relu'),
        MaxPooling2D((1,1), strides=2, padding='same'),
        Flatten(),
        Dense(256),
        Dense(3, activation='softmax')

    ])


    return gmodel
model=get_model()


model.compile(
    optimizer=tf.keras.optimizers.Adam(0.0001),
    loss="categorical_crossentropy",
    metrics=['accuracy']
)
history=model.fit(train,epochs=5,validation_data=test)

I dont know why when I try to train this model to classify picture into four catagories, the accuracy only about 25%, and I have tried change model, loss function and optimizer but all of these do not not. Can some one tell me how to solve this problems. Thank very much

What is your accuracy over train?

any solution? I got the similar issue.