🧠 Joint fMRI-Text Model
This model jointly predicts cognitive response type, trial type, and generates a 3D fMRI-like brain activation tensor based on natural language input and user-level metadata.
🧩 Inputs
Text: a belief or statement in natural language (e.g., "Handwashing reduces disease risk."), processed using distilbert-base-uncased.
Metadata: a vector of 14 user features including:
Scaled continuous inputs: Age_scaled, Openness_scaled, Conscientiousness_scaled, Extraversion_scaled, Agreeableness_scaled, Neuroticism_scaled, ICAR_Total_scaled, MOCA_scaled, VMN_Sum_scaled
Encoded categorical features: Gender_encoded, Education_encoded, Ethnicity_fused_encoded, Income_level_encoded, VCBS_cat_encoded
🎯 Outputs
Response Type: probabilities over 4 possible response categories
Trial Type: probabilities over 3 trial categories
fMRI Tensor: synthetic output of shape (74 × 74 × 52) representing brain activity across four timepoints
🚀 Example Usage
from transformers import AutoTokenizer
from joint_fmri_model import JointFMRIModelWithHub
import torch
model = JointFMRIModelWithHub.from_pretrained("kenchenxingyu/joint-fmri-text-model")
tokenizer = AutoTokenizer.from_pretrained("distilbert-base-uncased")
text = "I think regular hand washing reduces disease risk."
inputs = tokenizer(text, return_tensors="pt", truncation=True, padding=True)
with torch.no_grad():
text_vec = model.text_encoder(inputs["input_ids"]).squeeze(0)
meta_input = torch.rand(1, 14) # Replace with realistic metadata
output = model(text_vec.unsqueeze(0), meta_input)
print("Response:", output["response_probs"])
print("Trial:", output["trial_probs"])
print("fMRI shape:", output["fmri"].shape)
📂 Files
pytorch_model.bin: trained model weights
config.json: model configuration
README.md: this file
🏷 License
This model is released under an open academic research license. For other use cases, please contact the author.