一周前,我在谷歌公司的笔记本电脑安装了以下库后运行良好:
!pip install te
!pip install tensorflow==2.1
!pip install keras==2.3.1
!pip install -U segmentation-models
!pip install -U --pre segmentation-models和
import tensorflow as tf
import segmentation_models as sm
import glob
import cv2
import numpy as np
from matplotlib import pyplot as plt
import keras
from keras import normalize
from keras.metrics import MeanIoU它起了作用:
# set class weights for dice_loss (car: 1.; pedestrian: 2.; background: 0.5;)
dice_loss = sm.losses.DiceLoss(class_weights=np.array([0.25, 0.25, 0.25, 0.25]))
focal_loss = sm.losses.CategoricalFocalLoss()
total_loss = dice_loss + (1 * focal_loss)
metrics = [sm.metrics.IOUScore(threshold=0.5), sm.metrics.FScore(threshold=0.5)]
BACKBONE1 = 'resnet34'
preprocess_input1 = sm.get_preprocessing(BACKBONE1)
# preprocess input
X_train1 = preprocess_input1(X_train)
X_test1 = preprocess_input1(X_test)
# define model
model1 = sm.Unet(BACKBONE1, encoder_weights='imagenet', classes=n_classes, activation=activation)然后,由于一个错误,我做了一些更改:
!pip install -q tensorflow==2.1
!pip install -q keras==2.3.1
!pip install -q tensorflow-estimator==2.1
import os
os.environ['CUDA_VISIBLE_DEVICES'] = '0'
os.environ["SM_FRAMEWORK"] = "tf.keras"
from tensorflow import keras
from tensorflow.keras.utils import normalize
from tensorflow.keras.metrics import MeanIoU 在此之后,这部分就无法工作了:
# define model
model1 = sm.Unet(BACKBONE1, encoder_weights='imagenet', classes=n_classes, activation=activation)错误:
/usr/local/lib/python3.7/dist-packages/tensorflow_core/python/keras/saving/hdf5_format.py in load_weights_from_hdf5_group(f,layers) 649“”650 if 'keras_version‘in f.attrs:-> 651 original_keras_version =f.脲s’‘keras_version’..decode(‘utf8’) 652其他: 653 original_keras_version = '1‘ AttributeError:'str‘对象没有属性'decode’
加载比例值的问题。但我不知道怎么解决
发布于 2021-05-29 23:04:45
https://stackoverflow.com/questions/67756332
复制相似问题