How to do Tensorflow image recognition?

MarkB
MarkB New Altair Community Member
edited November 2024 in Community Q&A
I want to load "fashion_mnist" dataset from "tensorflow_datasets" and process it with "Deep Learning" extension.
The original "fashion_mnist" data is (60000,(28,28,1),(1)) so, I converted it to the BATCH/ID Tensor by "Execute Python":

import pandas as pd
import numpy as np
import tensorflow as tf
import tensorflow_datasets as tfds
tfds.disable_progress_bar()
image_size = 28

def normalize_img(row):
    img = row.image.reshape((image_size,image_size))/255.0
    img = np.append(img, [range(image_size)], axis=0)
    img = np.append(img, [np.ones(image_size)*row.name], axis=0)
    img = np.append(img, [np.ones(image_size)*row.label], axis=0)
    row.image = img.T
    return row

def preprocess_df(df):
    df.image = df.apply(normalize_img, axis=1)       
    df = pd.DataFrame(np.dstack(df.image.to_numpy()).transpose(2,0,1).reshape(df.shape[0]*image_size,image_size+3))    
    df.rename(columns={28: 'id', 29:'batch', 30:'label'}, inplace=True)
    return df

def rm_main():
    dataset, metadata = tfds.load('fashion_mnist', shuffle_files=True, as_supervised=True, with_info=True)
    df_train = tfds.as_dataframe(dataset['train'], metadata)
    df_test = tfds.as_dataframe(dataset['test'], metadata)
    df_train = preprocess_df(df_train)
    df_test = preprocess_df(df_test)
    return df_train, df_test
First of all, is it correct format?
If I want to set Batch on 32 or 64. How to reshape the tensor with Rapidminer blocks?
After that I converted it to Tensor, built model with "Deep Learning (Tensor)", receive the warnings:
WARNING: Couldn't update network in epoch x
Finally, when applied it with "Apply Model (Generic)" I receive an error:
Process failed: operator cannot be executed (getColumn() can be called on 2D arrays only). 


Welcome!

It looks like you're new here. Sign in or register to get started.

Welcome!

It looks like you're new here. Sign in or register to get started.