# Обучение модель предсказывать, насколько хорошо последовательности будут работать для РНК-интерференции. import deepchem as dc import tensorflow as tf import tensorflow.keras.layers as layers import matplotlib.pyplot as plot # Построение модели. features = tf.keras.Input(shape=(21, 4)) prev = features for i in range(2): prev = layers.Conv1D(filters=10, kernel_size=10, activation=tf.nn.relu, padding='same')(prev) prev = layers.Dropout(rate=0.3)(prev) output = layers.Dense(units=1, activation=tf.math.sigmoid)(layers.Flatten()(prev)) keras_model = tf.keras.Model(inputs=features, outputs=output) model = dc.models.KerasModel( keras_model, loss=dc.models.losses.L2Loss(), batch_size=1000, model_dir='rnai') # Загружаем данные для обучения. train = dc.data.DiskDataset('train_siRNA') valid = dc.data.DiskDataset('valid_siRNA') # Обучение модель, отслеживая ее производительность в наборах данных для обучения и проверки. metric = dc.metrics.Metric(dc.metrics.pearsonr, mode='regression') for i in range(20): model.fit(train, nb_epoch=10) print(model.evaluate(train, [metric])['pearsonr']) print(model.evaluate(valid, [metric])['pearsonr'])