lavenraiy 2022-05-12 00:34 采纳率: 45.5%
浏览 78
已结题

尝试将tflite形式的模型文件导入Android studio4.2,关于机器学习模型的问题

这是我自己按照机器学习教学书上的讲解搭建的非常简单的模型,因为确实不是很懂,所以想知道关于这段代码所训练出来的模型(输出是.h5文件)如何添加元数据,因为我尝试导入AS报错This model does not contain associated files, and is not a Zip file.


```python
print(os.listdir(r"数据集:自己找的分好类的图片文件夹"));
dir='数据集'
——各个类——
X=[]
y_label=[]
imgsize=150
def training_data(label,data_dir):
    #print("正在读入:",data_dir)
    for img in os.listdir(data_dir):
        path=os.path.join(data_dir,img)
        img=cv2.imread(path,cv2.IMREAD_COLOR)
        img=cv2.resize(img,(imgsize,imgsize))
        X.append(np.array(img))
        y_label.append(str(label))
——“读入各个类”——
from sklearn.preprocessing import LabelEncoder #导入标签编码工具
from keras.utils import np_utils #导入One-hot编码工具
label_encoder=LabelEncoder()
y=label_encoder.fit_transform(y_label) #标签编码
y=np_utils.to_categorical(y,10) #将标签转换为One-hot编码
X=np.array(X) #将X从列表转换为张量数组
X=X/255 #将X张量归一化
from keras.preprocessing.image import ImageDataGenerator
augs_gen=ImageDataGenerator(
    featurewise_center=False,
    samplewise_center=False,
    featurewise_std_normalization=False,
    samplewise_std_normalization=False,
    zca_whitening=False,
    rotation_range=10,
    zoom_range=0.1,
    width_shift_range=0.2,
    height_shift_range=0.2,
    horizontal_flip=True,
    vertical_flip=False
)
from sklearn.model_selection import train_test_split #导入拆分工具
X_train,X_test,y_train,y_test=train_test_split(X,y,test_size=0.2,random_state=0)
from keras import layers #导入所有层
from keras import optimizers #导入优化器
from keras import models #导入所有模型
#datas_placeholder = tf.compat.v1.placeholder(tf.float32, [None, 32, 32, 3],name='X_train')
#labels_placeholder = tf.compat.v1.placeholder(tf.int32, [None],name='y_input')
augs_gen.fit(X_train) #针对训练集拟合数据增强器
cnn=models.Sequential() #序贯模型
cnn.add(layers.Conv2D(32,(3,3),activation='relu', #卷积层
                      input_shape=(150,150,3)))
cnn.add(layers.MaxPool2D((2,2))) #最大池化层# 池化层,特征图大小减半
cnn.add(layers.Conv2D(64,(3,3),activation='relu'))# 卷积层,32个输出通道,3*3的卷积核,激活函数为relu
cnn.add(layers.Dropout(0.5)) #Dropout层
cnn.add(layers.MaxPool2D((2,2))) #最大池化层
cnn.add(layers.Conv2D(128,(3,3),activation='relu'))
cnn.add(layers.Dropout(0.5)) #Dropout层
cnn.add(layers.MaxPool2D((2,2))) #最大池化层
cnn.add(layers.Conv2D(128,(3,3),activation='relu'))
cnn.add(layers.Dropout(0.5)) #Dropout层
cnn.add(layers.MaxPool2D((2,2))) #最大池化层
cnn.add(layers.Flatten()) #展平层
cnn.add(layers.Dropout(0.5)) #Dropout层
cnn.add(layers.Dense(512,activation='relu')) #全连接层
cnn.add(layers.Dense(10,activation='sigmoid',)) #分类输出对应数据集具体的类别数目
cnn.compile(loss='categorical_crossentropy', #损失函数
            optimizer=tensorflow.keras.optimizers.Adam(lr=1e-4), #优化器
            metrics=['acc']) #评估指标
history=cnn.fit_generator(
                augs_gen.flow(X_train,y_train,batch_size=16),
                validation_data=(X_test,y_test),
                validation_steps=40,
                steps_per_epoch=100,
                epochs=50, #指定轮次
                verbose=1)

```

  • 写回答

1条回答 默认 最新

  • 歇歇 2022-05-18 23:46
    关注

    这个模型不包含相关的文件,也不是一个Zip文件。
    你用tensorflow lite,官方的转换工具处理

    评论

报告相同问题?

问题事件

  • 系统已结题 5月20日
  • 修改了问题 5月12日
  • 创建了问题 5月12日

悬赏问题

  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?
  • ¥15 求daily translation(DT)偏差订正方法的代码
  • ¥15 js调用html页面需要隐藏某个按钮
  • ¥15 ads仿真结果在圆图上是怎么读数的
  • ¥20 Cotex M3的调试和程序执行方式是什么样的?
  • ¥20 java项目连接sqlserver时报ssl相关错误